The Clean Slate Syndrome (Синдром чистого аркуша)(Синдром чистого аркуша: пастка нескінченних перезапусків проти системного рефакторингу)
Психологічна пастка епохи агентського вайбкодингу: спокуса повністю знести заплутаний репозиторій (rm -rf) і почати з нуля замість того, щоб проводити структурний рефакторинг накопиченого технічного боргу.
1. Огляд концепції та системна проблема
З появою потужних генеративних моделей розробка зіткнулася з дивним парадоксом: написати проект «з нуля» стало набагато простіше й швидше, ніж зрозуміти, чому падає вже існуючий. Це породило феномен The Clean Slate Syndrome (Синдром чистого аркуша).
Коли проект розвивається протягом кількох місяців за участю штучного інтелекту, код поступово накопичує неявні залежності, суперечливі абстракції та «синтетичні латки». Настає момент, коли черговий запит до моделі ламає три інші підсистеми. Замість того, щоб увімкнути аналітичне мислення, зафіксувати контракти та методично рефакторити код, інженер відчуває непереборне бажання виконати rm -rf src/ або створити новий репозиторій з назвою v2-super-clean.
Мозок розробника прагне втекти від когнітивного навантаження: чистий каталог обіцяє легкість, свіжість та відсутність болю. Але кожен новий перезапуск повторює той самий фатальний цикл. Згенерована «ідеальна» версія живе рівно доти, доки не зустрічається зі справжніми вимогами бізнесу, після чого знову перетворюється на клубок хаосу.
НЕВИЧЕРПНЕ КОЛО ПЕРЕЗАПУСКІВ (CLEAN SLATE TRAP):
[ Чистий каталог: ілюзія легкості та краси ]
|
v (Генерація коду за 2 дні)
[ Нарощування фіч без архітектурних рамок ]
|
v (Поява перших незрозумілих багів)
[ Страх чіпати код: модель ламає сусідні файли ]
|
v (Емоційне виснаження: rm -rf)
[ Створення v2_final_clean_architecture... ]
2. Архітектурна таксономія та ментальна модель
Порівняння зрілого інженерного підходу та інфантильного перезапуску:
| Критерій оцінки | Синдром чистого аркуша (Антипатерн) | Системний рефакторинг (Best Practice) |
|---|---|---|
| Причина дії | Емоційне роздратування через незрозумілий код | Розрахунок ROI та наявність нової доменної моделі |
| Робота зі старим кодом | Повне ігнорування або видалення | Аналіз і вилучення критичних бізнес-правил |
| Тестовий захист | Відсутній ("напишемо нові тести потім") | Покриття старої системи black-box e2e-тестами |
| Результат через місяць | Такий самий захаращений проект v2 | Стабільна система з керованим рівнем ентропії |
| Психологічний стан | Хронічне відчуття незавершеності | Впевненість у контролі над архітектурою |
3. Практичні інженерні сценарії в продакшені
Сценарій 01: Смерть SaaS-стартапу через три "повні переписування"
Засновник проєкту протягом року тричі повністю перезапускав бекенд на новому стеку: спочатку NestJS, потім Go з агентами, потім Fastify з модульною архітектурою. Щоразу здавалося, що «тепер код чистий і агент розуміє його з півслова».
У результаті жодна версія так і не дійшла до релізу платежів і білінгу, оскільки щоразу 80% часу витрачалося на повторне написання автентифікації, міграцій користувачів та відправки листів. Засновник вигорів, спалив бюджет і закрив проект із повною огидою до програмування.
Сценарій 02: Застосування патерну Strangler Fig для агентської кодової бази
Інженер розуміє, що агентський моноліт заплутався в логіці обробки замовлень. Замість видалення репозиторію він створює строгий контракт та пише регресійний набір тестів:
# Фіксація поточної поведінки перед рефакторингом
npx vitest run tests/regression/orders.e2e.test.ts --reporter=verbose
Далі він доручає агенту переписати тільки один конкретний метод розрахунку податків, перевіряючи, щоб тести залишалися зеленими. Старий код поступово заміщується без зупинки проекту і без емоційного зриву.
4. Підводні камені, типові помилки та безпека
- Забуті крайні випадки (Lost Edge Cases): У старому заплутаному коді часто зашиті місяці виправлень рідкісних, але критичних багів (нюанси кодувань, специфіка провайдерів, таймаути). Стерши його, ви гарантовано повернете ці баги в продакшен.
- Марна трата контекстного вікна: Перезапуск створює тисячі нових рядків коду, на аналіз яких витрачаються токени та час, замість таргетованого виправлення двох рядків у функціональному ядрі.
- Хронічна прокрастинація під виглядом оптимізації: Створення нової структури тек та налаштування лінтерів у чистому проекті дає фальшиве відчуття корисної роботи, відсуваючи реальний запуск бізнесу.
5. Стратегічний висновок для інженера 2026 року
Справжній інженерний рівень проявляється не в тому, як швидко ви можете згенерувати свіжий каркас додатку, а в тому, як ви працюєте з недосконалими, живими та заплутаними системами.
Здатність зупинити свій імпульс "стерти все і почати заново", виокремити ядро проблеми та провести хірургічний рефакторинг — це головне щеплення від професійного вигорання в еру дешевої синтетичної генерації.
FAQ: The Clean Slate Syndrome (Синдром чистого аркуша)
Пов'язані терміни
Vibecoding Dopamine Loops
Нейрофізіологічна залежність розробника від миттєвого збудження при генерації працюючих прототипів та різке виснаження при зіткненні зі складною налагоджувальною рутиною.
AI Technical Debt (Технічний борг генеративного коду)
Експоненціальне накопичення архітектурної ентропії, прихованих дефектів та непідтримуваних залежностей у кодовій базі через надшвидке додавання згенерованого коду без системного рефакторингу.
Spec-Driven Development (SDD)
Провідна методологія інженерії програмного забезпечення епохи ШІ, де створення, узгодження та фіксація структурованої машинно-читабельної специфікації обов'язково передує генерації коду.
Continuous AI Refactoring
Практика регулярного фонового оновлення кодової бази автономними ШІ-агентами: очищення мертвого коду, міграція застарілих API, оптимізація продуктивності та виправлення технічного боргу.