Присаживайтесь, будет много букв 🤣
Тут друг скинул мне обсуждение с Reddit. Автор жалуется, что за время работы с AI его кодовая база разрослась до неприличных размеров. Куча дублирующих функций, логика разбросана по проекту, а разобраться во всём этом становится всё сложнее.
Не знаю, насколько история правдивая. Но тут есть что обсудить.
Как думаете, действительно ли разработчик должен понимать каждую строчку кода, которую он пишет? Особенно если пишет уже не он, а AI-агент. А скорее всего именно он и пишет 😋
И что будет, если завтра LLM вдруг станет недоступна?
На фоне этого я задумался о своей разработке.
У меня есть продукт «RUTUBE Спорт», за который я отвечаю как руководитель. И если сейчас меня попросить с нуля поднять проект, а потом ещё какой-нибудь баг исправить, я, мягко говоря, не обрадуюсь 🤣
Мне придётся идти к ребятам, которые в нём работают, или самому садиться и разбираться.
Хорошо это или плохо? Да вот хрен его знает.
Но ведь я не пишу весь этот код. Его пишут мои разработчики. При этом перед бизнесом за результат отвечаю я.
И если не дай боже завтра что-то сломается, я же не скажу: «Ну это не я писал, разбирайтесь сами».
Ну а теперь представим, что вместо разработчиков у меня AI-агенты.
Я точно так же ставлю задачи, объясняю, какой результат хочу получить, проверяю работу. И если что-то пошло не так, отвечать придётся мне.
Разница, конечно, есть. Разработчик может со мной поспорить, предложить другое решение или вообще сказать, что мы какую-то дичь придумали. Агент тоже может возражать, но за последствия своих решений он не отвечает.
Но давайте вернёмся к истории с Reddit.
Почему вообще появились дублирующие функции? Почему кодовая база разрослась настолько, что автор перестал в ней ориентироваться?
Ведь у нас, разработчиков, давно есть понятие архитектуры, соглашения о написании кода, принципы переиспользования. Мы проводим код-ревью, обсуждаем решения, стараемся придерживаться общих правил.
А с агентами что, всё это вдруг стало не нужно?
Можно ведь точно так же описать архитектуру проекта, завести AGENTS.md, сформулировать договорённости, настроить проверки. И требовать, чтобы агент сначала разобрался в существующем решении, прежде чем писать новое.
Правда, наличие файла с инструкциями ещё не означает, что агент будет им следовать. Это тоже придётся проверять.
И мне кажется, именно здесь многие попадают в ловушку.
AI позволяет писать больше кода, но ведь никто не обещал, что от этого код станет лучше.
Причём похожую историю мы уже проходили. Только раньше вместо агента был разработчик, который предпочитал написать очередной велосипед, потому что разобраться в чужом коде было дольше.
Теперь этот велосипед можно собрать за минуту. И ещё парочку следом))
Так вот…
Я не обязан помнить каждую функцию в своём продукте. Однако я должен понимать, как он устроен, какие решения мы приняли и что делать, если что-то сломается.
А если завтра один из моих ребят уволится? Или исчезнет доступ к LLM?
Наверное, плохая история, если вместе с ними исчезнет и возможность поддерживать продукт.
Хотя тут я сам с собой до конца не определился. Насколько глубоко нужно погружаться в код, чтобы действительно за него отвечать? Ведь даже сейчас, без всяких агентов, мы делегируем друг другу огромные куски работы.
И всё же есть разница между ситуацией, когда ты не помнишь реализацию и можешь в ней разобраться, и ситуацией, когда ты вообще не понимаешь, что происходит в твоём проекте.
А где для вас проходит эта граница? Разработчик обязан понимать весь код, который отправляет в прод, или достаточно уметь разобраться в нём, когда потребуется?
P.s. фотку поста кину первым комментарием
Let’s keep in touch