Working Effectively with Legacy Code (Майкл Физерс, AgileDays-2008) — различия между версиями
StasFomin (обсуждение | вклад) м |
StasFomin (обсуждение | вклад) м |
||
Строка 1: | Строка 1: | ||
− | |||
− | |||
Доклад [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). Это так можно получить результат как в репризе Райкина «претензии к пуговицам есть — нет, пришиты намертво…»
К сожалению, по просьбе Майкла, мы (пока?) воздерживаемся от публикации видео — Майкл хотел бы вырезать некоторые моменты. Возможно мы передадим видео Асхату Уразбаеву, и Асхат уже опубликует одобренную часть.
А пока, мы рекомендуем заинтересованным темой, прочитать книгу «Рефакторинг с использованием шаблонов».
Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».
Репликация: База Знаний «Заказных Информ Систем» → «Working Effectively with Legacy Code (Майкл Физерс, AgileDays-2008)»