
Комментарии 25
Сложно поверить что ИИ мердж на 5к строк кода будет контролировать разработчик который сидит за рулем. Проверит тесты, которые тот же ИИ написал и готово.
Но с другой стороны вот пишем мы, на шарпе или на javascript код, ассемблер же никто не проверяет. Скажете что преобразования при компиляции однозначные? Но они не однозначные и систем на которых это исполняется множество. Может агенты которые пишут код и постановки это еще один уровень абстракции и процесс "писать ручками" рано или поздно устареет? Самого это напрягает.
Преобразование высокоуровневого кода в ассемблер / байткод - оно разве non-deterministic? Вводных данных, влияющих на результат много, но так ли прям мы не можем однозначно узнать, что получим на выходе, если все параметры учесть? А с LLMками не так, вон говорят они даже agents.md читают по настроению
Библиотеки мы используем как подключаемые файлы, зная входной и выходной интерфейс и полагаемся на них. Драйвера и железо на ПК разные. А если модуль на входе и на выходе предсказуемый и работает приемлемое время, то "есть ли разница, какого цвета кошка?", написал его человек или нейронка.
Если предсказуемый...
Библиотеки вы ведь не все подряд используете. А проверенные вами в том числе.
А если написать тесты покрывающие ВСЁ, то написать для них "вручную" код займет 1% времени.
Как бы кто не писал тесты - они никогда не покрывают откровенный саботаж. Ну т.е. легко представить себе что нейронка вам напишет внутри функции суммы if a=8546745764 sum=7524675, как будете проверять :) ?
Ловил недавно баг, где агент в цикле начал дергать метод, который сам же благополучно удалил коммитом ранее. Очень творческий подход к рефакторингу, ничего не скажешь
Сложно поверить что ИИ мердж на 5к строк кода будет контролировать разработчик
Ну так надо строить процесс так, чтоб не было огромных запросов на слияние. Для этого делают "вертикальные" слайды, чтоб можно было контролировать и дизайн и код.
Вайб в разработке хорош до определённого предела, об этом и статья. Делать проект "от и до" не смотря в код, - можно. Но это риск, который надо понимать и принимать.
Сейчас ИИ это как врач. Если спросить какая температура у пациента то в лучшем случаи он откроет мед-карту, а если такой нет то вычислит 36.6
Но если попросить измерить ...
<tool name="get_temperature">
<patient>Иван Иванов</patient>
</tool>Думаю сейчас ещё нет понимания какая роль программиста в связке с ИИ. С одной стороны хотят чтобы ИИ все писала сама и быстро. С другой повесить ответственность на программиста.
В общем и целом мы в команде пришли к такому же заключению: ИИ - инструмент разработчика, не его замена. По, крайней мере, пока. И ускорение даёт заметное, но не кратное. Опять же, пока.
А когда (если) сможет стать заменой, нужно будет еще посчитать, что выгоднее. ИИ супер-агент, который сможет заменить человека, запросто может выйти за рамку условных "10К долларов в месяц"
Пункт про рост когнитивной нагрузки - это как раз то, что реже всего обсуждают в маркетинговых текстах про LLM. Диффы на +1500 -1400 в мерж-реквесте я видел сам, и да, ревью такого объема быстро превращается в формальность, потому что мозг физически не успевает построить модель изменений за разумное время. Согласен и с отсылкой к Науру: теория программы в голове разработчика не заменяется документацией, а LLM только ускоряет накопление кода, под который эту теорию никто не строил. Спорный момент - аналогия с командой мидлов. Предсказуемость и правда ключевое отличие: у человека есть репутация и последствия за косяк, у модели нет ни того ни другого. Но совсем отказываться от агентов, по-моему, тоже не вариант: для изолированных модулей с четкими границами, вроде утилит или тестов, риск размывания ответственности минимален, а выигрыш по времени реальный. Проблема начинается там, где агент лезет в core-логику, которую потом три месяца никто не может объяснить новому человеку в команде.
А можно, пожалуйста, не проставлять хабы наобум? Какое отношение этот пост имеет к любому из пяти указанных языков программирования?
если уж придираться, то там 4 языка...
и хабы не совсем "наобум", но их сочетание в одном посте, да, дело нечастое
Хабр обязывает выбрать как минимум один хаб, поэтому я решил не мелочиться, а более подходящих не нашёл, извините
Обожаю эти пулл-реквесты от ии-агентов. Выглядит стильно, тесты вроде зеленые, а в рантайме память течет со скоростью ниагарского водопада)
Я работаю в компании, которая сейчас как раз переживает этап эйфории в отношении LLM. Несколько месяцев назад прошли массовые сокращения (рынок немного штормит - клиенты тоже пытаются использовать LLM вместо нашего продукта), в том числе прилично прошлись по фронтендерам и QA. В результате имеем следующее: все делают всё (я как бэкендер из команды инфры последние 2 месяца 90% времени "пишу" фронтенд - "приключение на неделю" говорил мой менеджер); тесты разрослись до неприличных размеров (CI на мердже занимает вдвое больше времени, чем 4-5 месяцев назад), потому что LLM пишет их чуть ли не на каждую строчку кода, но при этом баги никуда не делись; код ревью превратилось в формальность - именно то, о чем автор пишет, невозможно такие объемы ревьюить, плюс LLM очень многословна (то, что делается в 1 строчку на python, превращается в отдельную функцию с 5 строчками кода и 9 строчками комментариев - реальный пример!); баги на проде, требующие мгновенного исправления, как кажется стали появляться чаще.
При этом топ менеджмент доволен, потому что линейные менеджеры, вероятно, им докладывают, что все супер. CEO уже несколько раз заявлял, насколько быстро мы теперь работаем (еще бы - никто не хочет на морозе остаться когда следующие layoffs будут!) В это же время программисты потихоньку выгорают. На этой неделе меня и мою коллегу директор RnD в шутку назвал "агентами". Не очень нам смешно было...
Давайте будем честны. В последние 5 лет в IT пришло очень много случайных людей, которым все это айтишное совершенно не интересно, а вот деньги интересны. Все больше приходило некомпетентных менеджеров, которые подбирали себе не сильных технарей а удобный для себя людей, желательно софтскиловых гуманитариев. IT семимильными шагами, из более менее осмысленной, планируемой и ответственной деятельности, превращаеться в инфантильное и безответственное хайподр..чево, где одним плевать на все, лиж бы деньги платили, другие пришли в игры играть и за хайпом гоняться. В этом году модны микросервисы - перепишим все на них. В другом ФП - срочно нужно завести монадные трансформеры в проект. Все что угодно. Не важно что наступает ад, всем плохо а бизнес теряет деньги, главное чтобы игра в хайп продолжалась. К этому всему присовокупил определенный процент людей, которые когда то были норм, но сейчас у них семья рыбалки и вообще не до этого всего, просто платите деньги.
И тут на сцену выходит чудо-оружие, меч кладенец и палочка выручалочка в виде ИИ. Эффективные менеджеры в экстазе - наж же компании продающие ИИ пообещали повышение эффективности на 3000% да и можно поувольнять будет наконец то этих бездарей всех. Попаданцы и выгоревшие счастливы - теперь больше не нужно этим говном заниматься, печатай промты и занимайся своими делами. Хайпожоры счастливы - теперь можно хайпить на ИИ. И все плевать для чего это и можно ли этим пользоваться и в каких случаях.
И вот уже в одной статье - "Зачем писать код?", в другой "Я не писал код уже год и горжусь этим!", и уже в третьей "Зачем читать код?". Родилось сообщество ИИ наркоманов, которые уже давным давно все похоронили, для них мир давно изменился а они знать в новом мире. Причем чем меньше знают и больше полагаются на ИИ тем больше себя называют инженерами.
И вот IT в котором на серьезных проектах нужны были долгие согласование, где часто сидели и продумывали каждый шаг, сейчас дурдом.
Откуда должна появился мотивация у разработчика на развитие если он больше не пишет код? Зачем ему учить то что он ну будет писать? Если он не будет учиться то у него не будет квалификации а если не будет квалификации то как он будет проверять что сделал его любимый ИИ? Очевидно что никак. Но, who cares?
Это болото не из-за ИИ возникло, скорей обострило болезни современного IT комьюнити.
Я сейчас начинаю крупные изменения с мысли как я буду доказывать что изменения корректны. И в половине случаев корректность в достаточной степени видна из поведения, из тестирования разумного объёма. А в половине случаев нет. Был случай в распределенной системе когда никакие тесты, логи и вычитки не помогли. Пришлось спроектировать доказуемым образом (через конечные автоматы в данном случае). И теперь всё работает уже года 3.
А если наоборот, я ревьювер, то я почти не читаю. Я прошу автора рассказать и задаю вопросы почему такие решения приняты и что гарантирует, что решение действительно корректно
Так в этом и проблема: с внедрением т.н. AI ожидания возросли до того, что нужно делать 5 пулл реквестов в 3 разных репо в день. И в таком темпе невозможно разжевывать каждый ПР ревьюеру - нужно мерджить как из пулемета. А, да, есть одна опция - ЛЛМ делает код ревью и оставляет простыню комментариев, половина из которых нерелевантна, затем автор просит ЛЛМ пофиксить все, затем повторить. Точно так же ЛЛМ может ответить на Ваш вопрос, почему такие решения приняты и что гарантирует. А если Вы будете настаивать на объяснении человеком - прослывете тормозом прогресса компании в глазах менеджеров, которым не качество важно, а количество.
задаю вопросы почему такие решения приняты и что гарантирует, что решение действительно корректно
Вопросы "почему" и "что" полезны на этапе проработки требований. Задавать их на ревью может быть немного поздно. Дальше tricky момент: переформулировать их в термины реализации "как" - в чем собственно и состоит задача разработчика. И вот здесь на ревью вас будут дурить, если сами не разбираетесь в деталях.
Клинический слчай когда агент пишет заглушки для тестов, показывая красиво позеленевший отчёт. Они могут удалять "лишнюю" функциональность потому, что без нее проще и она вам точно не нужна. "Забывать" имплементировать ключевые интеграции (тесты будут врать, используя подходящие моки). Этот список можно долго продолжать. Поэтому в итоге приходится вдумчиво просматривать каждое изменение.
Так вот, вопрос: а где тонны продуктов? Когда уже каждый разработчик станет сам себе предпринимателем?
Тонны продуктов может и есть, просто вам о них не слышно потому что они не очень как продукты. Уметь писать код (даже хороший) не равно быть хорошим предпринимателем, и даже если теперь каждый может что-то напрогать для себя, это не должно значить, что это напроганное будет успешным продуктом, о котором есть смысл говорить.
Кто виноват - понятно. Вопрос - а что делать?
Самая главная проблема даже не в засилье ИИ. Несколько раз “дать по рукам”, заставить ревьювить совместно - и стыд за “я не знаю что тут творится” сделает остальное. Для открытых проектов это может и не вариант, тут уже система репутации нужна (со всеми ее минусами).
Проблема в том, что с ИИ любой диллетант выглядит как профи. Но ИИ до профи еще очень далеко (и не факт, что догонит - проблема с обучением никуда не делась). И качество работы таких диллетантов будет оставлять лучшего. Но зато дешево - это да. А при голосовании рублем реальный профи будет всегда оутсайдером. Просто потому что он понимает, что дать задачу ИИ - это очень далеко от “решить проблему”. И цену даст соответствующую.
Приложение на nvidia jetson nx, 2 MIPI + 1 USB камеры 60 fps каждая в разрешении 1280х720, через хитрожелтое кастомное CUDA-ядро с препроцессингом, кормят batch=3 модель детекции yolo26n. После инференса ROI бегут в библиотеку apriltag на распознание, вычисления координат, потом накладывает OSD со всякими красотами и в облегченном виде 3 видеопотока отдается на мобильник.
Свежесть кадра e2e - 18ms в среднем. Загрузка GPU с включенным превью 20%, CPU 40%x6 ядер.
Все сделано ИИ, с вагоном метрик, 3 вагонами планов, 30 вагонами вопросов.
Моя роль что-то вроде спам-бота "расскажи подробнее очень простыми словами о полученных результатах выполнения плана, успехах, аномалиях и местах, где имеет смысл проработать подробнее")
А нам точно нужны code agents?