← На главную

Переписывать код ради красоты? Вернёте старые баги

01.07.2026 18:08 · hackernews

Большинство переписываний кода — это подарок инженеру, а не бизнесу. Автор признаётся: несколько лет назад он вставал в 4 утра и на личном времени перетаскивал рабочий проект с CakePHP на Laravel. Просто потому, что не знал CakePHP, а Laravel любил. После слияния приложение делало то же самое для тех же пользователей с той же скоростью. Единственное, что улучшилось — ощущение от кода у самого разработчика. Это и есть главный паттерн.

Рабочий код — это книга уже исправленных багов. Джоэл Спольски ещё в 2000 году назвал полное переписывание худшей стратегической ошибкой. Каждая странная проверка, подозрительный таймаут — это шрам после инцидента, которого вы не видели. Выбросите код — вернёте баги в продакшн, на тех же пользователей. Автор вспоминает Perl-систему десятилетней давности и самописный PHP CMS. Они выглядели ужасно. Но работали. Компании правильно сделали, что не вложились в их переписывание — каждый тихий год работы приносил чистую выручку.

Незнакомый код — не обязательно сломанный. Когда вы не знаете инструмент, всё на нём написанное кажется ошибкой. Это просто звук вашего непонимания. Стоит исходить из того, что люди до вас не были дураками — их решения подходили под задачу и тогдашние ограничения.

Это не значит, что трогать код никогда не надо. Есть честные причины: рантайм или зависимость с истёкшим сроком жизни и открытыми CVE; уход единственного разработчика; каждая новая фича стоит втрое дороже из-за архитектуры; бизнесу нужна возможность, под которую код изначально не проектировался. Сейчас автор как раз переписывает сервис с AI-агентом, потому что бизнес перерос код. У этого есть цифра — стоимость упущенной возможности.

AI делает переписывание дешёвым в наборе, но не в правильности. Модель портирует модуль за час, но не знает, почему в старом коде стоял странный таймаут — причина живёт в Slack-треде 2021 года. AI вырезает шрамы. Вы выкатываете чистый код и встречаете старые баги. Быстрая генерация кода, забывшего свои исправления — не скидка. Через два года новый инженер откроет этот AI-код, не поймёт, почему он такой, и захочет переписать его «правильно». Дешёвая генерация не разрывает этот цикл — она делает его проще начать и сложнее остановить. Выход — записывать причины решений простым языком, чтобы следующий человек или модель получили не только «что», но и «почему». Прежде чем переписывать работающий код, найдите цифру. Если её нет — обслуживать нужно ваше терпение, а не код.

Читать оригинал →