Я сразу вспомнил то, что я называю стадии "взросления программиста в проекте". Вот новый программист приходит в проект. Предположим, он достаточно молод (до 7 лет промышленной разработки).
1 стадия - разработчик знакомится с кодом и восклицает "что за хрень тут понаписали!". Ему хочется все переписать, он даже начинает прикидывать как он это сделает.
2 стадия - разработчик перестает хныкать и жаловаться на несносность кода вслух и местами даже начинает его хвалить ("хм, а вот тут неплохо было придумано"). "Ну не идиоты же его писали, такие же как и я" - и такие мысли тоже появляются. Желание переписать все еще сильно, разработчик даже составляет диаграмму компонентов и классов и расписывает текущий функционал по ним. В процессе создания такой диаграммы разработчик детально знакомится с текущей архитектурой и тут незаметно наступает
3 стадия - "В принципе далеко неглупые люди это сделали". Оценив свои будущие временные затраты на перепись и оригинальные архитектурные решения старого кода, программист всерьез задумывается о смысле. Жизни. Если он решается на перепись, то по прошествии времени вернется к стадии 1. Потому что не повзрослел. Когда повзрослееь, его ждет
4 стадия - "Смирение". "Понятно что здесь не все идеально, но это уже очень долго работает. Причем неплохо работает." Разумный выход конечно - переделать то что плохо. Но не то, что плохо написано, а то что плохо работает.
Думаю так. Да. Надеюсь что до 4й стадии скоро доберусь :)
23 янв 2010