Блог Личные заметки

Нельзя переписывать свою программу с нуля

Игорь Зыгин
17 Мар 2015
Просмотров: 1 450

grust-tuchi-pregrada-bol

В мире программирования есть много аксиом, одна из них гласит «Нельзя переписывать свою программу с нуля». Известный программист и писатель Джоел Спольски говорит об этом как о «Худшей стратегической ошибке, которую может совершить компания».
Решение переписать с нуля влечет за собой огромное количество ужасных трудностей, но самое ужасное, что фактически тем самым вы обьявляете Техническое Банкротство. Вообще, единственный момент, когда уместно «Переписать всё» это когда вы начинающий кодер, только что переставший понимать что не так в его Hello World-проекте. Когда гора отложенных «на-потом» недоработок разваливается и погребает вас под собой.
Тоесть это белый флаг. Это значит что вы сдались, обьявили капитуляцию. Ваша недальновидность и ваш, чего уж тут, идиотизм довели вас до того, что ваш проект похож на гору мусора. Кто же захочет рыться в таком мусоре?
Не удивительно, что программисты хотят выбросить все и с облегчением начать заново. Или они находят этому какие-то моральные оправдания, или сами становятся оправданием для других, ступивших на эту скользкую дорожку.
Ну а теперь о том, на чем основана Аксиома «Нельзя переписывать». Много переписываний начались и так и не дошли до конца по множеству причин. Все они были результатом «Технического банкротства» или, даже хуже, осознанным техническим банкротством, когда новая команда приступая к проекту не хочет узнавать, почему некоторые вещи сделаны так, как сделаны. Как говорит Спольски — Переписаный софт это тот же софт, только с другими багами.
Но.
Есть другой тип переписывания. Один из них мне особенно дорог, он называется «Не надо превращать табуретку в банкетный стол». Когда проект в ходе своего развития претерпевает такие изменения, что перестает быть самим собой — переписать его — возможно одно из лучших решений. Когда вы в ходе развития проекта переосмысляете саму его суть, его назначения — более целесообразным может стать путь «Начать заново». Как стул, при должном старании может стать столом. У него тоже 4 ножки, тоже есть доска сверху. И немного поработав ножки можно удлиннить, а доску расширить. Да, понадобится много дерева, и выглядеть будет убого. Вобщем сделать можно, но стоит ли?
Подводя итог, хочу сказать, что выбор о том делать или нет большой «Начать Всё Заново» — не самый легкий из выборов, но как любой выбор — сделать его необходимо. Он должен быть, как один из вариантов в вашем арсенале. Если у вас накопилось достаточно свежих идей относительно вашего проекта, как сделать его лучше и немного другим, начать с начала может быть тем, что вас спасет.

Поделиться:

Комментариев 2 Добавить комментарий

  • Максим Дзюба

    Иногда проект просто морально устаревает, сайт создали в 2007 году, по технологиям реально устарел. Помимо, этого проект разросся до невероятных размеров, и скорость утомляет клиентов, в таких случаях написание нового просто необходимо.

    Плюс философия EBI, гласит бизнес логика не зависит от среды разработки (frameworka, cms или языка программирования), т.е. ваши модули должны работать хоть где хоть как, в таком случае можно легко и быстро переписывать с 0.

  • Отличная статья, Игорь. Один раз я переписывал проект с нуля, тот еще был опыт(

Оставить комментарий