amarao: (Default)
[personal profile] amarao
Ещё одно наблюдение про llm в brownfield code (старом коде, который много и долго писали и который сложный, как противоположность "greenfield", который "пойти напиши новое с нуля").

Вещь, которую современные LLM практически не могут и не делают, это удаление старого. Если в ходе работы над фичей процесс поменялся и образовались старые хвосты, то в пределах файла LLM может догадаться удалить старый код. Выше уровнем - крайне редко. Удалить рецепт (just) target (make), playbook (ansible), workflow (GH actions) и т.д. - это что-то за пределами мыслительного процесса LLM.

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

Это всё отравляет контекст и заставляет LLM идти на дикие выкрутасы.

Но это первая часть драмы.

Если человек deeply in loop, он это заметит, и либо сам сотрёт, либо скажет стереть. Но это только если человек глубоко понимает все этапы существования/тестирования фичи. В какой-то момент он начинает упускать ВСЕ этапы (потому что какая-то часть происходящего была принята как "работает и ладно"), и фрагментик этого проползает и мутирует.

Текущее состояние LLM: программирует на 5+. Планирует/реализует архитектуру на 3 (что сравнимо с многими senior architects), software engineering - not even close.

Вот эта тонкая граница, то место, где надо остановиться с LLM. Я не знаю, как её решают грандиозные метры погоняния LLM на больших проектах, но в рамках моего узенького опыта работы с ними, это то место, которое не может быть выгружено в LLM. Software engineering остаётся на человеке. Как только оно сползает в LLM, это slippery slop, который может быть спасён только (человеко-управляемым) микросервисным подходом (вон он, наконец-таки, в полный рост сияет - coding monkey сейчас AI, а человек это всё аккуратно декомпозирует), либо code janitor'ом, который всё лишнее из кода порежет, чтобы LLM было проще программировать.


... А впереди поезда должен идти человек с флагом и предупреждать всех о том, что едет поезд, чтобы лошадей убрали с дороги.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

amarao: (Default)
amarao

June 2026

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 9th, 2026 08:31 am
Powered by Dreamwidth Studios