Персональные инструменты
 

Working Effectively with Legacy Code (Майкл Физерс, AgileDays-2008) — различия между версиями

Материал из CustisWiki

Перейти к: навигация, поиск
м
м
 
(не показано 5 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{ActualBanner2}}
 
 
 
Доклад [http://www.objectmentor.com/omTeam/feathers_m.html Майкла Физерса] был «guest star» всего мероприятия, хотя стоит отметить, что не все смогли выдержать плотную конференцию до самого конца — слушателей было существенно меньше, чем в начале дня.
 
Доклад [http://www.objectmentor.com/omTeam/feathers_m.html Майкла Физерса] был «guest star» всего мероприятия, хотя стоит отметить, что не все смогли выдержать плотную конференцию до самого конца — слушателей было существенно меньше, чем в начале дня.
  
Строка 16: Строка 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>
 +
 +
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… . Трудно удержаться и не процитировать соответствующие комиксы Дильберта:

Legacy systems (Dilbert).jpg
Legacy code support (Dilbert).jpg


На модельном примере класса «расписание» (Schedule), написанном на Java, Физер показал как сделать его тестопригодным. Основной прием свелся к N-кратному применению Dependency injection. Причем, на наш вкус с некоторым перебором: даже статические helper-методы определения является ли день выходным или рабочим были перенесены в нестатический класс, а в тесте было предложено их «заглушить», написав соответствующего наследника. ИМХО это уже другая крайность: когда тестируется функциональность ровно одного класса, а всё, что он использует, либо заглушено при помощи Stub-ов, либо эмулируется при помощи Mock-ов (см. http://martinfowler.com/articles/mocksArentStubs.html). Это так можно получить результат как в репризе Райкина «претензии к пуговицам есть — нет, пришиты намертво…»


Майкл Физерс на AgileDays-2008.jpg


А пока, мы рекомендуем заинтересованным темой, прочитать книгу «Рефакторинг с использованием шаблонов».

</tr>

Application Developer Days Left.gif

Конференция «Application Developer Days-2011» приглашает участников и докладчиков!

ADD2banner468x60.gif

2012.02.10_legacy_code.png


Внимание! Данная статья выбрана для репликации во внешнюю базу знаний компании. Пожалуйста, не допускайте в этой статье публикацию конфиденциальной информации, ведения обсуждений в теле статьи, и более ответственно относитесь к качеству самой статьи — проверяйте орфографию, пишите по-русски, избегайте непроверенной вами информации.