Открыть список
Как стать автором
Обновить
39
Карма
0
Рейтинг
Дмитрий Волк @dvolk

Пользователь

Интеграционное тестирование web-приложения с Selenium WebDriver

К сожалению, нет, ссылки не осталось. Если я правильно помню (а было это давно), то было предложено решение типа вот такого: sysmagazine.com/posts/111649

Если продраться через сильно неродной для автора английский и/или смотреть только на код, то становится понятно, куда копать. Надеюсь, вам поможет.

Тюнингуем eclipse — TOP 7 plugins

Там еще есть пара комбинаций клавиш (что-то типа Ctrl-Shif-стрелка вниз), которые насильно добавляют/удаляют ресурс в/из контекст(а)

Тюнингуем eclipse — TOP 7 plugins

Когда крупный проект разбит на много задач (в идеале так и должно быть), то такой проблемы нет. В принципе, для сферического проекта в вакууме можно вывести эмпирическое правило: если Mylyn-овский контекст становится слишком большим, то вы неправильно разбиваете работу на конкретные задачи.

Второе: при закрытии редактора с файлом он исчезает из контекста (насколько я помню, это поведение настраивается).

И третье: В сам mylyn встроен алгоритм, по которому определяется релевантность конкретного ресурса (файла, метода, теста, и т.д.). И чем реже вы обращаетесь к этому ресурсу, тем быстрее он «выпадет» из контекста. Не помню сейчас деталей (я присутствовал на презентации Мика Кирстена когда-то давно), но если мне не изменяет склероз, какой-то коэффициент этого затухания интереса тоже настраивается, либо через UI, либо через какой-то конфиг. Если я это придумал — прошу прощения.

Тюнингуем eclipse — TOP 7 plugins

Главное в Mylyn (а для меня этот плагин — мастхэв) — это не продвинутое управление задачами, а его главная фишка — контекстный фокус. Очень помогает мыслить рационально, когда все спрятано, кроме того, с чем конкретно работаешь. Ну и еще помогает делать code review или продолжить чью-то работу — открываешь чужой контекст, который сохранен в тракере как аттачмент, и вперед.

Расширяемым классам — расширяемые Builder'ы!

Хотелось бы посмотреть Ваш вариант решения, все же.

Расширяемым классам — расширяемые Builder'ы!

Га? (в смысле, как не соответствует?!)

Расширяемым классам — расширяемые Builder'ы!

Пардон, из build() мы, конечно, возвращаем не this (в смысле Builder), а построенный Entity

Расширяемым классам — расширяемые Builder'ы!

Я еще не до конца продумал Ваше решение, но хотелось бы обсудить такой вопрос: насколько оно (решение) будет приложимо для полноценного FluentInterface-а, как он описан, например, у Фаулера (http://martinfowler.com/bliki/FluentInterface.html). К сожалению, я почему-то не могу найти пример такого решения с кодом (на Гугле забанили, похоже), но принцип такой:
class Entity {

  public static ActionOne start() {
    return new Builder();
  }
...
  private interface ActionOne {
    ActionTwo actionOne_path1();
    ActionTwo actionOne_path2();
  }

  private interface ActionTwo {
    Entity build();
  }

  private class Builder implements ActionOne, ActionTwo {

  //тут мы пишем имплементацию методов actionOne_path1, actionOne_path2, build, каждый раз возвращая this
  }

Пардон за неаккуратность в коде, думаю, идея понятна.

Зачем это нужно:
Entity e1 = Entity.start().actionOne_path1().build(); //работает
Entity e2 = Entity.start().actionOne_path2().build(); //работает
Entity e3 = Entity.start().actionOne_path1().actionOne_path2().build(); //Не работает. 
//После actionOne_path1() нельзя вызвать ничего, кроме build()


JodaTime — учите матчасть, или важность существительных

Я прошу прощения, но у меня не было в планах описывать тонкости работы с JodaTime, тем более, что я в нем, как видно из поста, не специалист. Это был крик души, опубликованный в персональном блоге.

Программирование vs Паттерны

холивар детектед?

Программирование vs Паттерны

Эээ… А что значит «сразу делать по паттернам»? Зачем вообще продумывать весь код сначала? Почему не дать ему (коду) расти самостоятельно, исправляя искривления сразу, не дожидаясь врастания уродства в другие куски программы? Не знаю, насколько этот рецепт подходит всем, но я просто пишу код (с тестами, да). Если в процессе хоть раз поморщусь (типа, как-то тут неэлегантно получается), я тут же делаю рефакторинг. В результате код получается прямой, читаемый, неповторяющийся, легко тестируемый.

Ну да, опыт, конечно, помогает находить неэлегантные места и подсказывает, что нужно сделать для их исправления, и опыт этот придет. Но если сначала рисовать _всю_ архитектуру, или, не приведи Господь, UML-диаграммы, а потом писать, получится индусский код. Их так учат. Они в своих университетах запоминают сотни умных слов и названий паттернов, но с практическим применением этих знаний у них проблемы. Смотришь на их код, хватаешся за голову. Говоришь ему — друг дорогой, на кой хрен тут нужны 50 строк кода в элеменарном методе? А он говорит: «А я применил паттерн «Сон синглтона в летнюю ночь на фасаде статической фабрики»». А то, что оно тут просто не нужно, что все эти 50 строк превращаются в три, он не задумывается. Не научен.

Программирование vs Паттерны

Подумал-подумал, и решил, что был несколько категоричен. Все вышесказанное — 100% правда. Для случая Java/Scala + Eclipse. Вспомнил времена, когда кодил в VI, и понял, что без хороших инструментов (типа Эклипса), мне было бы намного труднее решиться заниматься рефакторингом не закончив какой-то кусок кода. А сейчас — лафа :) И никаких отмазок, чтобы не делать все правильно.

Программирование vs Паттерны

Исходя из личного опыта, именно так и происходит, если откладывать рефакторинг (как и написание тестов, кстати) на потом. Последние годы убедили меня, что рефакторинг и тесты нетоделимы от дизайна и собственно написания кода. И, почему-то, я уже давно не рисовал архитектуру отдельно от кода, в смысле, на бумажке. Архитектура — и есть код, классы, пусть даже с пустыми методами.

Как раздавать инвайты на Google+

Ура!!! Заработало!

Спасибо огромное!

Как раздавать инвайты на Google+

Попробую, может, в этом топике обломится. dmitriy.volk эт гмейл.ком

Раздача слонов или инвайты на Google+

Спасибо!

Но дырочку, похоже, действительно прикрыли :(

Ну и ладно, будем ждать.

Раздача слонов или инвайты на Google+

dmitriy.volk ат гмейл.ком

Очень хочется! Заранее спасибо!

А бывает ли фонетическая сортировка?

А по поводу того, что в лучшем случае это будет сопоставление, к которому привык лично я — меня это не пугает, потому что а) я не один, всегда найдется куча людей со схожими привычками, а кому не нравится, то б) он может модифицировать мое решение под себя, ну или в) расхождений не должно быть очень уж много, эта часть может быть настраиваемой

Информация

В рейтинге
5,993-й
Откуда
California, США
Зарегистрирован
Активность