Почему не стоит читать код, сгенерированный нейросетями
Ключевые тезисы:
Чтение сгенерированного кода — неэффективно и замедляет разработку
Надежность обеспечивается через тесты, линтеры и автоматические проверки, а не ручной review
Важность подхода зависит от критичности кода (бэкенд vs фронтенд, работа vs pet-проекты)
Агенты/нейросети читают в 9 раз больше кода, чем генерируют — эта пропорция сохраняется
Исходный тезис Роберта Мартина
Автор книги "Чистый код" заявил, что не читает код, сгенерированный нейросетью. Вместо этого он обкладывает его ограничениями, тестами и проверками, чтобы быть уверенным в качестве финального результата.
Подход в коммерческой разработке (на работе)
Критичность подхода зависит от типа проекта:
Бэкенд-сервисы (высокая критичность)
- Работают с деньгами, транзакциями, процентами.
- Код должен быть стабильным и правильным.
- Практика: код вычитывается, задачи разбиваются на маленькие трассы.
- Объем сгенерированного кода сравним с человеческим, его удобно и нужно читать.
Фронтенд (низкая критичность)
- Основная ценность для клиента — функциональность (получить деньги, отправить документы).
- Даже для маленькой фичи генерируется много кода (логика, компоненты, тесты, снапшоты).
- Практика: не вычитывается активно.
- Надежность обеспечивается:
- Интеграционными тестами (открывают браузер)
- Юнит-тестами и снапшотами
- Инструментами анализа кода (например, SonarQube)
Личные проекты, стартапы, POC
Здесь читать код вообще не нужно. Авторский подход:
Генерация User Stories — подробное описание действий всех пользователей.
Автоматическая генерация тестов на основе User Stories.
Автоматическая проверка соответствия тестов спецификациям (другим агентом).Важно: Код самих тестов не вычитывается. Главное — их корректное поведение, а не красота реализации.
Генерация основного кода с использованием линтеров, анализаторов безопасности (например, BastionLab).
Агентский цикл: Планирование -> Разработка -> Тестирование -> Ревью (другим агентом) -> Мерж.
Роль человека: Только финальный мерж. Код не читается, иногда проверяется только список измененных файлов (например, обновилась ли документация).
Почему чтение кода стало неэффективно?
- Скорость генерации: Нейросети генерируют код очень быстро и в больших объемах.
- Правило 1:9: Как для людей, так и для агентов — они читают в 9 раз больше кода, чем пишут.
- Пример: сгенерировали 1,000 строк → нужно прочитать 9,000 строк для ревью.
- Это сильно замедляет процесс. Затраты на написание дополнительных инструкций, тестов и гардрейлов (ограничений) часто окупаются.
Исключения: когда читать всё же нужно
Только для сверхкритичных систем, где любая ошибка ведет к серьезным последствиям:
Код для банковских систем
Медицинское ПО и оборудование
В таких случаях работа ведется маленькими трассами, что минимизирует объем сгенерированного кода и делает его review выполнимым.
Выводы:
Современный тренд — смещение фокуса с ручного чтения кода на автоматизированную валидацию через тесты и статический анализ.
Эффективность подхода напрямую зависит от критичности и контекста проекта.
Если вы используете нейросети, но генерируете мало кода — возможно, вы не используете их потенциал по скорости и масштабу.