Безжалостно Рефакторить!
Мы, программисты, склонны держаться за дизайн долго после
того как он становится неуклюжим. Мы продолжаем повторно
использовать неудобный в сопровождении код поскольку он
все еще как-то работает и мы боимся испортить его. Но
действительно ли это выгодно? XP принимает точку зрения
что это невыгодно. Когда мы убираем избыточность, улучшаем
устаревший дизайн убираем неиспользуемые куски - мы делаем
рефакторинг. Рефакторинг в конечном итоге экономит время
и улучшает качество продукта.
Безжалостно пересматривайте любой код для того, чтобы
сохранять дизайн простым по мере разработки. Сохраняйте
код ясным и понятным чтобы его было легко понять, модифицировать
и расширять. Удостоверьтесь что все написано один и
только один раз. В конечном итоге, это занимает меньше
времени чем доводить до ума запутанную систему.
Наш опыт.
Медленно и со скрипом начинаем рефакторить нашу систему.
Дело осложняет огромное количество старого кода который
в большинстве не имеет никаких UnitTest-ов.
Часто разработчики не понимают что рефакторить - не
значит переписывать заново. В результате, вместо маленьких
понятных изменений, сохраняющих работоспособность системы
в любой момент, разработчик переписывает код заново,
а потом проводит полдня в отладчике, а потом исправляет
все ошибки, которые уже были исправлены в старом некрасивом
коде.
Уже сейчас видно, что когда мы отрефакторим всю нашу
систему, мы выбросим от 30% до 50% всего кода, сохранив
ту же самую функциональность. При это система будет
ясной, понятной и надежной.
|