Когда играли с ИИ и проиграли...

Сегодня закончил технический аудит одного web-портала. Портал, судя по всему, прошёл весь естественный жизненный цикл AI-разработки:

1. Сначала всё было прекрасно. Владелец собрал проект с помощью ИИ. Быстро. Красиво. Работает. Ну а что может пойти не так?

2. Потом пришли первые 60 клиентов. И сервер внезапно обнаружил, что архитектура — это не то же самое, что «оно же запускается». Сервер начал задумчиво смотреть в горизонт. Пользователи — на страницу 503. Владелец — на разработчиков.

3. Началась эпоха вайбкодеров. За проект последовательно взялись четыре разработчика. Каждый приходил со своей миссией: — «Я знаю, как это оптимизировать». — «Тут вообще всё неправильно». — «Сейчас быстро поправим». — «Странно… почему после моей оптимизации перестало работать то, что работало вчера?» Каждый оставлял после себя немного кода, немного магии и изрядное количество костылей.

4. Работала система. Починили одно — упало другое. Починили второе — перестало работать третье. Починили третье — почему-то снова сломалось первое. И где-то в этот момент проект начал стремительно двигаться к состоянию максимальной энтропии. SOLID? Не слышали. Single Responsibility? Один класс вполне может отвечать за всё. Dependency Inversion? Зависимости сами как-нибудь инвертируются. Архитектура? А зачем? У нас же есть ChatGPT.

5. В итоге — полный рефакторинг. Не потому что так было запланировано. А потому что дальше уже было проще переписать, чем понять. И вот тут особенно забавно. Проект изначально создал ИИ. Потом люди начали исправлять то, что сделал ИИ. Потом другие люди начали исправлять исправления первых. А в конце пришёл я и начал исправлять последствия того, как люди исправляли то, что исправляли после ИИ.

Получился такой своеобразный DevOps-круговорот костылей в природе.

И ведь проблема вообще не в ИИ. ИИ — отличный инструмент. Но если дать ему задачу: «Сделай мне приложение» без архитектуры, ограничений, принципов, тестов и понимания того, что именно ты строишь, он с радостью сделает приложение. А потом ещё одно. А потом исправит первое. А потом оптимизирует второе. А потом объяснит, почему третий вариант «более масштабируемый». И всё это будет выглядеть очень убедительно. Пока не придут первые 60 клиентов. 😁

Главный вывод моего сегодняшнего аудита:

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

Проблема начинается тогда, когда ИИ становится архитектором, разработчиком, ревьюером, тестировщиком и тимлидом одновременно — а человек просто нажимает Enter.

Ну и да… «Работает» — это ещё не архитектура. Иногда это просто первая стадия будущего рефакторинга. 😏

А вы уже сталкивались с такими проектами? Поделитесь опытом!

Когда играли с ИИ и проиграли... | Сетка — социальная сеть от hh.ru