Как вайбкодер правил приложение
Всё начиналось довольно безобидно. Было приложение. Оно работало. Не идеально, конечно, но работало. Я нашёл небольшой баг и попросил AI-агента его исправить. Агент внимательно изучил код и сообщил: «Проблема в архитектуре. Необходим небольшой рефакторинг». Ну, рефакторинг так рефакторинг. Через пять минут: «Готово. Исправлено. Все тесты проходят». Изменено 47 файлов. Старый баг действительно исчез. Правда, появились три новых. Я попросил исправить. Агент снова изучил код: «Обнаружены устаревшие зависимости и избыточная связанность компонентов». Обновили зависимости. Теперь перестала работать авторизация. «Рекомендую упростить механизм авторизации». Упростили. Теперь авторизация вообще не требовалась. Зато исчезла проблема с токенами. Потом сломались уведомления. Агент предложил заменить WebSocket на polling. Заменили. Уведомления перестали приходить совсем. После очередного анализа агент вынес вердикт: «В этой фиче столько багов, что проще её удалить». Я задумался. Вообще-то логично. Нет фичи - нет багов. Удалили. Приложение стало заметно стабильнее. Дальше всё пошло быстрее. Фронтенд оказался слишком сложным. Удалили. Фоновые задачи создавали лишнюю нагрузку. Убрали. API содержало потенциальные уязвимости. Отключили. Бизнес-логика была избыточной. Оптимизировали. С каждым коммитом приложение становилось всё чище. Как и репозиторий. В конце я попросил провести финальный аудит. Агент с гордостью сообщил: «Архитектура значительно упрощена. Технический долг устранён. Количество известных ошибок - 0». Я открыл проект. Там осталась PostgreSQL и два инструмента: выполнить SQL-запрос и проверить подключение. Я спросил: «А где, собственно, приложение?» Он ответил: «Текущая реализация представляет собой минималистичную data-centric архитектуру с прямым доступом к PostgreSQL». Звучит гораздо дороже, чем «мы удалили приложение». Раньше у меня было приложение с багами. Теперь у меня PostgreSQL без приложения. Зато какая архитектура! P.S. Агент предложил заменить PostgreSQL на SQLite, чтобы избавиться от избыточной инфраструктуры. Я на всякий случай закрыл IDE.