Эдди Османи считает, что ключ к тому, что ИИ-агенты пишут код «в среднем лучше при больших масштабах», — это верификация, ведь благодаря ей проверка становится гораздо дешевле. Раньше тестирование, бенчмарки, спецификации и реальные конечные сценарии, которые делали «хороший код» дорогим, теперь можно поручить самому ИИ-агенту. Поэтому акцент смещается с построчного ревью на создание циклов, в которых ИИ может самостоятельно выполнять проверки и получать обратную связь. Он также предлагает фиксировать ошибки ИИ в общих конфигурациях, хуках или тестах, чтобы накапливать опыт; человек остаётся ответственным за выпуск, но оценивает результаты по фактам, а не только по сравнению изменений.
Эдди Османи утверждает, что в эпоху ИИ качество кода формируется благодаря автоматизированным циклам верификации, а не построчному ревью, и предлагает систематически превращать накопленный опыт в конфигурации и тесты.
«Агенты пишут код „в среднем гораздо лучше при больших масштабах“ — это верно. А „при больших масштабах“ — потому что есть проверка. Агенты делают проверку дешёвой.»
То, что делало «хороший код» дорогим (тесты, бенчмарки, спецификации, реальные прогоны e2e), теперь стало дешёвым — это можно просто попросить у ИИ-агента. Можно улучшить проверки.
Так что наша работа — не столько «проверять каждую строку», сколько «строить циклы, которые агент может запускать сам». Дайте агенту способ проверять свою работу. Именно в этом цикле и рождается качество.
И придайте вкусу сложность. Когда агент ошибается, зафиксируйте это (в общем конфиге, хуке или тесте), чтобы ошибка не повторилась. За то, что уходит в продакшн, по-прежнему отвечает человек, но теперь он проверяет не только диффы, а все доказательства.
в кодовых базах всегда был шлак. нас это всегда устраивало, потому что код редко должен быть идеальным — за исключением критически важного «жёсткого» софта (например, встраиваемого). разработка ПО — уникальный вид инженерии, потому что ты часто строишь то, что постоянно эволюционирует и почти органично: вкусы пользователей меняются, твои ментальные модели развиваются, а фичи приходят и уходят. признаюсь, я и многие другие, кто кодит давно, поначалу (где-то в 2024) скептически относились к тому, что агенты будут писать продакшн-код. «а как же весь шлак, который попадёт в нашу прекрасную кодовую базу?». но ведь и раньше был человеческий шлак, и его было много! если честно, большинство людей называют шлаком «код, который написал не я». реальность такова, что 99% людей (я включаю сюда и себя) даже не знают, как выглядит Хороший Код, не говоря уже о том, чтобы быть способными его написать. я бы предложил такое определение Хорошего Кода: • корректный • без багов • быстрый и экономичный в работе писать по-настоящему Хороший Код всегда было чрезвычайно трудно и дорого, потому что очень долго (может, @bendlang это изменит) код не был чем-то, для чего можно дёшево и формально гарантировать все 3 этих свойств. именно поэтому писать жёсткий софт намного сложнее и дороже: в зависимости от сценария у тебя может быть только одна попытка, и поэтому нужно быть правым с самого начала. но подавляющему большинству софта, которым мы пользуемся, не нужно быть Хорошим Кодом, чтобы приносить пользу пользователям. на самом деле вполне вероятно, что большинство софта, которым мы пользуемся, формально не верифицируемо! мы приняли некоторые баги в обмен на скорость и прогресс, поэтому полагаемся на тесты и o11y вместо этого и выбрали более инкрементальный подход. и это хорошо! агенты помогают нам двигаться быстрее и, если ты открыт к этой идее, способны помочь нам писать лучший код. это не будет Хороший Код (он всё ещё дорог), но в среднем в масштабе он, скорее всего, будет намного лучше. новое ремесло разработки ПО — разобраться, как это делать. теперь это твоя работа! если твоя продуктивность с агентами и без них не отличается значительно, ты делаешь что-то не так. но ещё не поздно принять это и использовать как возможность освоить целое новое дерево навыковОткрыть цитируемый пост в X
Источник: Addy Osmani · x.com