Разработка
Сейчас писать код дешево
Задача — выработать новые личные и командные привычки, которые соответствуют новым возможностям и перспективам агентской разработки.
Самая большая проблема при внедрении методов агентной инженерии — это смириться с последствиями того факта, что написание кода теперь обходится дёшево.
Код всегда был дорогим. Написание нескольких сотен строк чистого, протестированного кода занимает у большинства разработчиков программного обеспечения целый день или даже больше. Многие наши инженерные привычки, как на макро-, так и на микроуровне, построены вокруг этого основного ограничения.
На макроуровне мы тратим много времени на проектирование, оценку и планирование проектов, чтобы гарантировать, что наше дорогостоящее время, затраченное на кодирование, используется максимально эффективно. Идеи функций оцениваются с точки зрения того, какую ценность они могут принести в обмен на это время — функция должна многократно окупить затраты на разработку, чтобы быть стоящей!
На микроуровне мы принимаем сотни решений в день, основываясь на доступном времени и ожидаемых компромиссах. Стоит ли мне переписать эту функцию, сделав её немного более элегантной, если это добавит ещё час времени на кодирование? А как насчёт написания документации? Стоит ли добавлять тест для этого граничного случая? Могу ли я оправдать создание интерфейса отладки для этого?
Использование программных агентов значительно снижает затраты на ввод кода в компьютер, что разрушает многие из наших существующих личных и организационных представлений о том, какие компромиссы оправданы.
Возможность параллельного запуска агентов еще больше затрудняет оценку, поскольку один инженер-человек теперь может одновременно внедрять, рефакторить, тестировать и документировать код в нескольких местах.
Хороший код по-прежнему имеет свою цену
Стоимость разработки нового кода снизилась почти до нуля… но разработка качественного кода по-прежнему обходится значительно дороже.
Вот что я подразумеваю под «хорошим кодом»:
- Код работает. Он делает то, что должен делать, без ошибок.
- Мы знаем, что код работает. Мы предприняли шаги, чтобы подтвердить себе и другим, что код соответствует своему назначению.
- Он решает правильную проблему.
- Он корректно и предсказуемо обрабатывает ошибки: он не просто рассматривает «счастливый сценарий». Ошибки должны предоставлять достаточно информации, чтобы помочь будущим разработчикам понять, что пошло не так.
- Он прост и минималистичен — он делает только то, что необходимо, таким образом, чтобы и люди, и машины могли понять это сейчас и поддерживать в будущем.
- Он защищен тестами. Тесты показывают, что он работает сейчас, и служат набором регрессионных тестов, чтобы избежать его незаметного сбоя в будущем.
- Документация составлена на соответствующем уровне и отражает текущее состояние системы — если код изменяет существующее поведение, существующая документация обновляется в соответствии с ним.
- Проект предусматривает возможность будущих изменений. Важно придерживаться принципа YAGNI — код с дополнительной сложностью для прогнозирования будущих изменений, которые могут никогда не произойти, часто является плохим кодом, — но также важно не писать код, который значительно усложняет будущие изменения.
- Все остальные соответствующие «возможности» — доступность, тестируемость, надежность, безопасность, удобство сопровождения, наблюдаемость, масштабируемость, удобство использования — нефункциональные показатели качества, подходящие для конкретного класса разрабатываемого программного обеспечения.
Кодинг-агенты могут помочь с большей частью этих задач, однако значительная ответственность всё равно остаётся на разработчике, который управляет этими инструментами: именно он должен убедиться, что сгенерированный код действительно является «хорошим» — причём хорошим в том конкретном смысле и в тех границах качества, которые требуются текущему проекту.
Нам нужно выработать новые привычки
Задача — выработать новые личные и командные привычки, которые соответствуют новым возможностям и перспективам агентской разработки.
Эти лучшие практики всё ещё формируются на уровне всей индустрии. Я и сам продолжаю их для себя нащупывать.
Пока что, мне кажется, максимум, что мы можем делать, — это сознательно перепроверять собственные инстинкты. Каждый раз, когда внутренний голос говорит: «Не стоит это писать, не окупится по времени», — всё равно отправляйте промпт. В асинхронной сессии с агентом в худшем случае вы просто вернётесь через десять минут и обнаружите, что задача не стоила потраченных токенов.
-
Маркетинг и монетизация2 недели назад
Как ML-подход удвоил первые покупки при снижении CPI, CAC, ДРР: «Яндекс Маркет» и Bidease
-
Видео и подкасты для разработчиков3 недели назад
Видео droidcon London 2025
-
Новости4 недели назад
Видео и подкасты о мобильной разработке 2026.5
-
Новости3 недели назад
Видео и подкасты о мобильной разработке 2026.6
