Код можно больше не смотреть
После стрима мы с Никитой Соболевым еще чуть-чуть пообщались - и я правда пришел к выводу, что В ОПРЕДЕЛЕННЫХ ПРОЕКТАХ, ОПРЕДЕЛЕННЫХ СИТУАЦИЯХ и при соблюдении ОПРЕДЕЛЕННЫХ УСЛОВИЙ LLM-сгенерированный код можно даже не ревьюить.
Как я к этому пришел: в процессе разработки фичи для DMR мы задизайнили большой эпик и побили его на таски. И вот, реализация первой таски Claude'ом была ужасной... просто отвратительной... Но я неожиданно для себя пришел к выводу, что "я бы смержил". Потому что тут выполняется сразу ряд критериев:
• это новая функция с единой ответственностью
• она никак не аффектит существующий код (ее никто не вызывает)
• у нее четкие архитектурные границы и интерфейсы меня полностью устраивают
Т.е. эта монструозная функция на 1000 строк кода может существовать для всего остального проекта как черный ящик. Меня совершенно не волнует, что внутри нее, если меня удовлетворяют ее API, а весь набор тестов на поведение - проходит.
Для опенсорса это все еще недопустимая ситуация - тут каждая строчка кода должна быть максимально вылизана. Хотя...
Но вот в настоящих CRUD'шлепских проектах - почему нет?
Если:
• ваш проект не требует SLA 4 девятки
• вы можете позволить себе иногда 500тить
• у вас есть опция оперативно доставлять фикс-апдейты до пользователей - Claude Code / Cursor катят по 3 патча в день по моим ощущениям
• у вас качественный агентский Harness и практики ИИнженерии - типа моего
• вы умеете выстраивать четкие архитектурные границы - модули должны быть строго изолированы друг от друга
• вы очень строго подходите к процессу тестирования - правки агента не должны ломать то, что уже работает
• ваш проект плотно обмазан всеми возможными статическими и динамическими проверками
При соблюдении всех этих критериев вы ИНОГДА можете смотреть код НЕ ТАК ПРИСТАЛЬНО - только проверять соблюдение архитектурных принципов, которые вы закладывали.
Возможно поэтому, дядя Боб (как большой знаток архитектуры, совсем не инфоцыган) утверждает, что больше не смотрит в код.
Black-box код требует сильной экспертизы в области архитектуры, четко налаженного пайплайна доставки патчей до пользователей и строгой системы автоматических проверок вокруг проекта. Ну и довольно существенной толерантности к говнокоду, конечно. Готовы к такой реальности?
#AI
После стрима мы с Никитой Соболевым еще чуть-чуть пообщались - и я правда пришел к выводу, что В ОПРЕДЕЛЕННЫХ ПРОЕКТАХ, ОПРЕДЕЛЕННЫХ СИТУАЦИЯХ и при соблюдении ОПРЕДЕЛЕННЫХ УСЛОВИЙ LLM-сгенерированный код можно даже не ревьюить.
Как я к этому пришел: в процессе разработки фичи для DMR мы задизайнили большой эпик и побили его на таски. И вот, реализация первой таски Claude'ом была ужасной... просто отвратительной... Но я неожиданно для себя пришел к выводу, что "я бы смержил". Потому что тут выполняется сразу ряд критериев:
• это новая функция с единой ответственностью
• она никак не аффектит существующий код (ее никто не вызывает)
• у нее четкие архитектурные границы и интерфейсы меня полностью устраивают
Т.е. эта монструозная функция на 1000 строк кода может существовать для всего остального проекта как черный ящик. Меня совершенно не волнует, что внутри нее, если меня удовлетворяют ее API, а весь набор тестов на поведение - проходит.
Для опенсорса это все еще недопустимая ситуация - тут каждая строчка кода должна быть максимально вылизана. Хотя...
Но вот в настоящих CRUD'шлепских проектах - почему нет?
Если:
• ваш проект не требует SLA 4 девятки
• вы можете позволить себе иногда 500тить
• у вас есть опция оперативно доставлять фикс-апдейты до пользователей - Claude Code / Cursor катят по 3 патча в день по моим ощущениям
• у вас качественный агентский Harness и практики ИИнженерии - типа моего
• вы умеете выстраивать четкие архитектурные границы - модули должны быть строго изолированы друг от друга
• вы очень строго подходите к процессу тестирования - правки агента не должны ломать то, что уже работает
• ваш проект плотно обмазан всеми возможными статическими и динамическими проверками
При соблюдении всех этих критериев вы ИНОГДА можете смотреть код НЕ ТАК ПРИСТАЛЬНО - только проверять соблюдение архитектурных принципов, которые вы закладывали.
Возможно поэтому, дядя Боб (как большой знаток архитектуры, совсем не инфоцыган) утверждает, что больше не смотрит в код.
Black-box код требует сильной экспертизы в области архитектуры, четко налаженного пайплайна доставки патчей до пользователей и строгой системы автоматических проверок вокруг проекта. Ну и довольно существенной толерантности к говнокоду, конечно. Готовы к такой реальности?
#AI