ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
27 марта
1578246 Топик полностью
EmbedProg (Сегодня, 20:29, просмотров: 10) ответил POV на ИИ и инструменты его использующие начинают пугать...
Я вам расскажу что было и что предстоит, и никто этим пока особо не поделился. 

TL/DR - утеря контроля над кодом и проектом. И потом, когда начинаются проблемы, вы будете рвать волосы на голове и откатывать недели 2 работы. Причина фундаментальна - вы попросту не знаете (теряете знание) как работает код. Поэтому все эти Use Case хороши ровно до той поры, пока не найдет коса на камень.


Случай был такой. Я попросил самую умную LLM ку на данный момент, Claude Opus (и платную) выполнить рефакторинг, разделить написанный на чистом C Windows App на две части, DLL + Exe. Причем сделать для DLL высунутый наружу API. Не надо ничего менять в функциональности, явно об этом потребовал. Это предельно тупая задача, не требующая никакого ума, но очень скучная для программиста. Можно сказать, это просто перемещение кусков текста. К моему удивлению, даже самый умный LLM серьезно забуксовал. Основная проблема LLM-ок в том (и это снова никто нигде не пишет) - они именно что не думают НАПЕРЕД. То есть он что-то сделает, и всё поломалось в другом месте. Ищет, предлагает решения, и ой, снова сломалось.


В общем казалось бы, тривиальная задача, но как всегда, мне "везет" больше всех. Коса на камень нашла практически сразу. LLM махом переместил код, а линковка сломалась. Очень долго чинил. Проблема еще в том, что этот си проект написан не в VisualStudio или на каком-то майнстрим IDE.
Почему-то решил часть функций оставить в Exe и ему пришлось делать в DLL указатели на эти функции из Exe (callback'и) и он их успешно забывал инициализировать.
То есть (опять об этом никто не пишет). Проблема в другом. LLM делает, да. Но результатам его работы нельзя доверять. Они... вероятностны. Это нынче никакой не робот. Вот реально, ну как так? Он же сам создал, трогал эти переменные. Иии.. а почему указатели не проинициализировал адресами функций? (в результате функции просто не вызываются) Я спрашиваю, ответ этой якобы "машины" потрясает. Извините, забыл. ЗАБЫЛ!!! Ты же машина, как ты мог "ЗАБЫТЬ" :-)
Я серьезно, не шучу. Всё это хлебанул сходу вот на такой тривиальной задаче. Так что радость-то радость, но теперь появляется недетерминированность.

В итоге, все компилируется и линкуется, но в run-time не работает. + Похерил в файлах с Win-1251 ANSI кодировкой весь русский. Я в фрустрации даже задал вопрос -типа в чем дело? Как могут быть ТАКИЕ результаты? Ты чего?

Ответ был столь же профессиональым "отъездом": мол, понимаешь, пока это всё было в Exe, баги были незаметны и все работало. Стоило перенести, и вскрылись баги которые на самом-то деле уже были. (Ну вы сами понимаете что это откоряка, какие еще баги, если просто функции переехали в DLL).

В приложении используется несколько одновременно работающих потоков, приложение опрашивает сетевое устройство. Под конец все работает, кроме одной функции. Я искал-искал и так и не смог понять в чем дело. Смутное предположение что LLM создала копию важной переменной, в итоге одна в Exe, вторая в DLL. И другая проблема. Писал не я. И реально, весь код это просто ужасающий, свирепейший детский говнокодище из говнокодов, который я только наблюдал. Пиавший человек вовсе не глуп, но он сидел десятки лет сам с собой и никогда не видел нормального ясного понятного кода, понятия не имеет о рефакторинге. О чем говорить, если автор тупо не оттаптывает пробел и копирует килотонны кода copy-paste В ОДНУ СУКА СТРОКУ.

Как итог, я просто зае..лся. И нет, все призывы LLM "изучи вот этот путь, анализруй то-то и то-то" либо ничего не дают, либо дают совершенно посторонние, ложные решения которые ни к чему не приводят. То что сводит с ума, то что задача-то говно, просто перетасовка функций. Если бы я не решил пострадать дурью, то вместо 2х недель непрерывного бреда (в итоге я уже просто впал в панику) я бы сделал это за 2-3 дня если сам.


А так да, я пробовал многие мелкие вещи, невероятно полезная вещь. Но Claude Opus 4.5 - 4.6 также и чрезвычайно медленный, любая моя задача выполняется минуты. Из того что меня поразило по-первости, когда меня аж челюсть отпала - я ему говорю, вот проект, проанализируй его. Он через некоторое время выдал, да это говорит управляющая программа для сканирующего блока, применяемого на таком-то транспорте. Блок называется так-то и так-то, и работает так-то. Я настолько удивился что спросил, ты как говорю это понял. В особенности, что блок называется вот так, хотя тебе известна лишь аббревиатура в коде? (это название дано много лет назад, человек дано уволился и с тех времен сохранилась просто аббревиатура, а ее значение никто уже не знает, все забыли). LLM говорит: я догадался :)


И еще. Вы пишИте хоть, что за инструменты используете. Иначе все ваши хвалы ни о чем. Используемая LLM играет огромное значение. В моих задачах что-то отличное от Claude (а он стоит x3 от всех остальных моделей) безбожно тупит и просто бесполезно. Я в данный момент использую CoPilot на Visual Studio Code, покупаю уже в 4й раз подписку у "того самого продавца", он кстати поднял цены. Модель почти постоянно Claude Opus 4.5 / 4.6 (x3 к цене запросов). Но думаю надо менять, очень медленно всё. Вчера вообще очень странное началось. Думал минут 20 и просто тихо выходит и ничего не происходит. Я спросил - в чем дело, ты завис? Ответ - ничего не завис. Но и результатов никаких и репорта нет. Вот так вот.


А вы что используете? И еще, на русском общаетесь?