|
|
Строка 1: |
Строка 1: |
− | {{ActualBanner2}}
| |
− |
| |
| Доклад [http://www.objectmentor.com/omTeam/feathers_m.html Майкла Физерса] был «guest star» всего мероприятия, хотя стоит отметить, что не все смогли выдержать плотную конференцию до самого конца — слушателей было существенно меньше, чем в начале дня. | | Доклад [http://www.objectmentor.com/omTeam/feathers_m.html Майкла Физерса] был «guest star» всего мероприятия, хотя стоит отметить, что не все смогли выдержать плотную конференцию до самого конца — слушателей было существенно меньше, чем в начале дня. |
| | | |
Строка 19: |
Строка 17: |
| | | |
| А пока, мы рекомендуем заинтересованным темой, прочитать книгу [http://www.ozon.ru/context/detail/id/2909721/ «Рефакторинг с использованием шаблонов»]. | | А пока, мы рекомендуем заинтересованным темой, прочитать книгу [http://www.ozon.ru/context/detail/id/2909721/ «Рефакторинг с использованием шаблонов»]. |
| + | |
| + | <noinclude>{{ActualBanner2}}</noinclude> |
| | | |
| [[Категория:AgileDays-2008 (наша запись)]] | | [[Категория:AgileDays-2008 (наша запись)]] |
| {{replicate-from-custiswiki-to-lib}} | | {{replicate-from-custiswiki-to-lib}} |
Версия 18:35, 18 апреля 2011
Доклад Майкла Физерса был «guest star» всего мероприятия, хотя стоит отметить, что не все смогли выдержать плотную конференцию до самого конца — слушателей было существенно меньше, чем в начале дня.
Но тема доклада всегда актуальна, Legacy Code это вечное проклятие невезучих программистов (т.е. тех, которых бросают на поддержку чужого кода), и legacy code вечен — да, старые информационные системы умирают, но проходит пару лет, и даже твой супер-крутой код становиться legacy… . Трудно удержаться и не процитировать соответствующие комиксы Дильберта:
На модельном примере класса «расписание» (Schedule), написанном на Java, Физер показал как сделать его тестопригодным. Основной прием свелся к N-кратному применению Dependency injection. Причем, на наш вкус с некоторым перебором: даже статические helper-методы определения является ли день выходным или рабочим были перенесены в нестатический класс, а в тесте было предложено их «заглушить», написав соответствующего наследника. ИМХО это уже другая крайность: когда тестируется функциональность ровно одного класса, а всё, что он использует, либо заглушено при помощи Stub-ов, либо эмулируется при помощи Mock-ов (см. http://martinfowler.com/articles/mocksArentStubs.html). Это так можно получить результат как в репризе Райкина «претензии к пуговицам есть — нет, пришиты намертво…»
К сожалению, по просьбе Майкла, мы (пока?) воздерживаемся от публикации видео — Майкл хотел бы вырезать некоторые моменты. Возможно мы передадим видео Асхату Уразбаеву, и Асхат уже опубликует одобренную часть.
А пока, мы рекомендуем заинтересованным темой, прочитать книгу «Рефакторинг с использованием шаблонов».