Разработчик из Meta: код, написанный AI, превращает кодовую базу в карточный домик

AI usage generates a fragile codebase

Разработчик из Meta: код, написанный AI, превращает кодовую базу в карточный домик

Автор, уволенный из Meta и теперь работающий в другой крупной tech-компании, где от него требуют генерировать 100% кода через AI, разбирает, почему такой подход делает продукт хрупким. AI отлично решает задачи в пределах своего контекстного окна, но не видит долгосрочных последствий: пишет поверхностные тесты, усложняет код, снижает понимание кодовой базы у людей и не оставляет времени на качественное ревью. Итог — больше инцидентов, дольше восстановление и ошибки, заметные только пользователям.

AI склонен очень хорошо решать задачи, которые помещаются в его контекстное окно, но он совершенно не замечает долгосрочных проблем, которые невозможно понять в этих относительно узких рамках.
  1. basilgohar

    Думаю, смотреть на использование ИИ для кода и разработки с инженерной точки зрения — это путь к разочарованию. Я software-инженер с более чем 20-летним стажем и полностью перешёл на использование ИИ для своего кода на 100%. Считаю это бесценным — практически единственным способом оставаться востребованным и вести бизнес в наше время. Буду рад, если кто-то со мной не согласится, потому что я не хочу оказаться правым впервые в жизни.

    Тем не менее, мой опыт говорит, что корпоративная и бизнес-разработка редко когда была связана со стабильными или надёжными кодовыми базами. Мы, инженеры, и небольшая доля компетентных engineering-менеджеров, и исчезающе малое число директоров боролись с бизнес-интересами, чтобы гарантировать приоритет качества в коде, но это всегда была борьба с ветряными мельницами, и нас часто наказывали за то, что мы тратили слишком много времени на качество и дизайн.

    Жёсткий график релизов — анафема для качественного кода, потому что его нельзя уложить в таймбокс.

    Так что ИИ — просто продолжение этого. Пытаюсь ли я гарантировать, что мои агенты проектируют код, который я счёл бы хорошим? Да, абсолютно! Но я полностью передал это на аутсорс и обнаружил, что они также вполне способны исправлять собственные ошибки. С помощью ИИ я достиг гораздо большего, чем когда-либо мог в одиночку или даже с командой, так что, полагаю, мне просто нужно применять свой опыт и навыки в управлении и архитектуре, а не в написании строк кода.

    Только время покажет, как это развернётся.

    Wallaahu aʿlam.

  2. solatic

    Думаю, мы увидим больше усилий в области статического анализа / линтеров.

    > Например, я видел, как один из лучших программистов в моей команде пытался влить код, который использовал javascript-события для CSS-эффектов при наведении мыши вместо селектора :hover, что является совершенно немасштабируемым способом написания mouseover.

    Ладно, может ли статический анализ найти JS-события mouseover и завалить линтер в результате? Возможно, в прошлом это было бы излишним или срабатывало бы очень редко, если вообще когда-либо, но в кодовой базе, написанной ИИ, это помогает поймать такое и указать агенту-обвязке переписать это.

  3. monjerry

    Качество кода не проблема.....пока не станет ею. Все будут счастливы, если кажется, что всё работает и движется быстро, и только когда вы начнёте видеть симптомы вроде невозможности что-то изменить, не сломав существующие функции, или даже роста количества токенов, сжигаемых на чтение сложных кодовых баз, вы начнёте заботиться о качестве кода (которое, как я полагаю, теперь люди просто попросят ИИ попытаться исправить собственный бардак).

  4. peterbell_nyc

    Я не уверен, что статьи «ИИ генерирует...» хорошо сохранятся.

    Мой первый вопрос был бы: какие именно состязательные ревью и детерминированные гейты написал автор, чтобы охватить те аспекты сопровождаемости (отсутствие DRY, цикломатическая сложность, неясные имена, плохо спроектированные потоки и т.д.), которые его волновали?

    Не поймите меня неправильно. Когда я нёсся со скоростью 200 PR в день (личные проекты — я бы не стал навязывать их другим), я довольно быстро соорудил большой комок грязи, но поскольку я перегенерирую своё хозяйство, (а) модели стали немного лучше, но (б) я добавляю гораздо больше строгости вокруг верификации (корректность, производительность, безопасность, эксплуатационные расходы и сопровождаемость). Это нелёгкая проблема, но мне кажется, что это инженерная задача, а не спекулятивная ракетостроение.

    Я прекрасно понимаю, что многие кодовые базы, сгенерированные ИИ, действительно страдают от большего числа инцидентов и меньшей сопровождаемости, но, думаю, важно различать, что является распространённым, а что возможным, поскольку решение для одного — повышение строгости вашей верификации, тогда как решение для другого — либо принять дерьмовый код, либо отказаться от LLM.

  5. jdpigeon

    Эти правила настолько верны, что кажутся очевидными. Пришло время начать давить на руководство, чтобы донести до них эти правила.

  6. happy_dog1

    Здесь чистая спекуляция, но вот мысль, которая приходит мне в голову. Я часто видел, как мебель используют как аналогию того, как быстро автоматизированный процесс может вытеснить ремесленников, но, думаю, в каком-то смысле это может быть аналогией того, как ремесло может продолжать выживать и процветать даже после автоматизации. Конечно, IKEA продаёт ГОРАЗДО больше мебели, чем Ethan Allen; но мебель ручной работы Ethan Allen гораздо более высокого качества и продаётся по премиальной цене.

    Потребители выигрывают во всех отношениях. Те, кто может себе позволить, покупают высококачественный продукт ручной работы; большинство, которые не могут, получают дешёвый доступ к мебели приемлемого качества.

    Это чистая спекуляция, но мне интересно, будет ли software постепенно развиваться таким же образом с доступностью ИИ. Для многих базовых задач потребители смогут в основном писать собственное software с помощью какого-нибудь инструмента ИИ; оно может быть невысокого качества, но, по крайней мере, будет дешёвым и быстрым в производстве, и это значительно снизит барьер для доступа среднего пользователя компьютера к тому, что он хочет делать на своей машине. Тем временем гораздо более узкий нишевый рынок высококачественных инструментов, которые хотя бы частично сделаны вручную экспертами для удовлетворения какой-то особой потребности, где производительность или качество опыта имеют решающее значение, будет продолжать процветать. В любом случае, в этом сценарии я предполагаю, что важность и заметность SaaS будет постепенно снижаться.

  7. yodsanklai

    Я не думаю, что это теперь имеет значение. Software становится чёрным ящиком, и агенты заставляют его работать, если только вы можете предоставить разумную спецификацию того, что хотите сделать, и немного надзора и указаний.

    Сейчас они не очень хорошо следуют хорошим принципам software-инженерии. Они делают работу, с многословным кодом, множеством дублирования, утечками абстракций, бесполезными юнит-тестами и так далее.

    Это проблема? Можно подумать, что в долгосрочной перспективе это будет так, что ИИ не сможет справиться со сложностью, которую он ввёл, но я не особо волнуюсь. Большинство software не такое уж большое, и агенты с каждым днём становятся лучше. И если вам действительно важен дизайн, не так уж сложно поручить вашему агенту следовать вашим стандартам.

    Хотел бы я, чтобы это было не так и чтобы я мог оправдать свой опыт и экспертизу ещё на несколько лет, но факты налицо.

  8. jasode

    Я не не согласен со статьёй, но она может создать у некоторых читателей впечатление, что написанный вручную код до ИИ не был хрупким.

    Вот известный комментарий о кодовой базе Oracle RDBMS в 25 миллионов строк: https://news.ycombinator.com/item?id=18442941

    Любая кодовая база большой компании с миллионами строк превращается в подобное состояние. Маленькая кодовая база начинается с чистой концептуальной целостности. Затем она неизбежно разлагается в непостижимый спагетти-код по мере добавления новых людей. Разные причины, включая то, что поздние разработчики заботятся о коде меньше, чем первоначальная команда разработчиков, дедлайны, избегание рефакторинга из-за страха что-то сломать и т.д.

    Если вы не хотите, чтобы ИИ создавал хрупкий код, вы должны применять те же гейты качества, которые применялись бы к написанному вручную коду до ИИ, чтобы всё оставалось чистым. Большинство компаний этого не делают.

  9. a34729t

    Одна из вещей, которые ИИ сокращает, — это любопытные инженеры, копающиеся в кодовой базе, что является отличным способом найти мёртвый код, неоптимальные структуры и т.д. С ИИ всё это исчезло.

  10. hackersnooze1

    Качество кода больше не волнует почти никого примерно с полгода назад. Software теперь чёрный ящик, привыкайте.

Ещё за этот день

2026-11-10