|
|
(не показаны 4 промежуточные версии этого же участника) |
Строка 14: |
Строка 14: |
| | | |
| | | |
− | К сожалению, по просьбе Майкла, мы (пока?) воздерживаемся от публикации видео — Майкл хотел бы вырезать некоторые моменты. Возможно мы передадим видео Асхату Уразбаеву, и Асхат уже опубликует одобренную часть.
| + | {{vimeoembed|25505404|720|405}} |
| + | |
| + | {{vimeoembed|25520076|720|405}} |
| | | |
| А пока, мы рекомендуем заинтересованным темой, прочитать книгу [http://www.ozon.ru/context/detail/id/2909721/ «Рефакторинг с использованием шаблонов»]. | | А пока, мы рекомендуем заинтересованным темой, прочитать книгу [http://www.ozon.ru/context/detail/id/2909721/ «Рефакторинг с использованием шаблонов»]. |
| | | |
| <noinclude>{{ActualBanner2}}</noinclude> | | <noinclude>{{ActualBanner2}}</noinclude> |
| + | |
| + | http://www.bonkersworld.net/images/2012.02.10_legacy_code.png |
| | | |
| [[Категория:AgileDays-2008 (наша запись)]] | | [[Категория:AgileDays-2008 (наша запись)]] |
| {{replicate-from-custiswiki-to-lib}} | | {{replicate-from-custiswiki-to-lib}} |
| + | [[Категория:Совершенный код (доклады)]] |
Текущая версия на 10:15, 22 октября 2012
Доклад Майкла Физерса был «guest star» всего мероприятия, хотя стоит отметить, что не все смогли выдержать плотную конференцию до самого конца — слушателей было существенно меньше, чем в начале дня.
Но тема доклада всегда актуальна, Legacy Code это вечное проклятие невезучих программистов (т.е. тех, которых бросают на поддержку чужого кода), и legacy code вечен — да, старые информационные системы умирают, но проходит пару лет, и даже твой супер-крутой код становиться legacy… . Трудно удержаться и не процитировать соответствующие комиксы Дильберта:
На модельном примере класса «расписание» (Schedule), написанном на Java, Физер показал как сделать его тестопригодным. Основной прием свелся к N-кратному применению Dependency injection. Причем, на наш вкус с некоторым перебором: даже статические helper-методы определения является ли день выходным или рабочим были перенесены в нестатический класс, а в тесте было предложено их «заглушить», написав соответствующего наследника. ИМХО это уже другая крайность: когда тестируется функциональность ровно одного класса, а всё, что он использует, либо заглушено при помощи Stub-ов, либо эмулируется при помощи Mock-ов (см. http://martinfowler.com/articles/mocksArentStubs.html). Это так можно получить результат как в репризе Райкина «претензии к пуговицам есть — нет, пришиты намертво…»
А пока, мы рекомендуем заинтересованным темой, прочитать книгу «Рефакторинг с использованием шаблонов».
Репликация: База Знаний «Заказных Информ Систем» → «Working Effectively with Legacy Code (Майкл Физерс, AgileDays-2008)»
Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».