[{"data":1,"prerenderedAt":115},["ShallowReactive",2],{"content-technical-debt-is-a-prompt-now-ru":3},{"id":4,"title":5,"articleTitleSource":6,"articleValid":7,"articleWarnings":8,"body":9,"comments":7,"date":99,"date_updated":8,"description":100,"extension":101,"icon":102,"image":103,"language":104,"meta":105,"navigation":7,"path":106,"publish-to":8,"readingTime":107,"seo":109,"stem":110,"titleEasterEgg":8,"titleLines":111,"topics":112,"translationKey":113,"__hash__":114},"content/technical-debt-is-a-prompt-now-ru.md","Технический долг стал промптом","h1",true,null,{"type":10,"value":11,"toc":95},"minimark",[12,25,28,31,34,40,43,46,49,52,55,58,61,74,77,80,83,86,89,92],[13,14,15,16,24],"p",{},"В статье ",[17,18,23],"a",{"href":19,"rel":20,"target":22},"https://martinfowler.com/articles/what-is-code.html",[21],"nofollow","_blank","“What Is Code?”"," Unmesh Joshi разводит две роли кода.",[13,26,27],{},"Код — это инструкции для машины. Производить такие инструкции становится дешевле: языковые модели всё лучше справляются с генерацией исполняемого кода. Но код — это ещё и концептуальная модель: словарь, имена, границы, отношения, абстракции и инварианты, через которые люди понимают систему.",[13,29,30],{},"С приходом LLM вторая роль становится не менее, а более важной. Хорошая кодовая база даёт модели устойчивые понятия, на которые можно опереться. Чёткие имена, выверенные границы, тесты, типы и инварианты становятся частью контекста. Они задают рамку, внутри которой модель работает.",[13,32,33],{},"Из этого следует важное следствие второго порядка:",[13,35,36],{},[37,38,39],"strong",{},"Раньше технический долг был трением. Теперь он стал промптом.",[13,41,42],{},"До LLM плохая архитектура вредила в основном тем, что замедляла людей. Запутанный код делал каждое изменение дороже. Разработчикам приходилось больше читать, держать в голове больше случайной сложности, чаще задавать вопросы, обходить старые компромиссы. Технический долг был налогом на будущие изменения.",[13,44,45],{},"Это и сейчас правда. Но это уже не вся правда.",[13,47,48],{},"Технический долг и раньше умел воспроизводить сам себя — через человеческие привычки и локальный прецедент. Разработчик копирует то, что лежит рядом. Новый код повторяет старый. Плохие решения расходятся по примеру. LLM не создают эту динамику — они её ускоряют. То, что раньше распространялось со скоростью человеческого внимания, теперь распространяется со скоростью генерации.",[13,50,51],{},"В разработке с LLM существующая кодовая база — это уже не только объект изменений. Это ещё и набор сигналов: имена, модули, интерфейсы, тесты, паттерны вызовов, локальные соглашения — всё это подсказывает модели, какой код здесь уместен.",[13,53,54],{},"В здоровой кодовой базе это работает на пользу. Код сужает пространство поиска. Учит модель локальному словарю. Делает одни варианты вероятнее, другие — менее вероятными.",[13,56,57],{},"Но обратное тоже верно.",[13,59,60],{},"В деградировавшей кодовой базе модель не видит в техническом долге долг. Она видит примеры. Видит прецедент. Видит стиль, который надо продолжать.",[13,62,63,64,67,68,70,71,73],{},"Размытая граница становится паттерном.",[65,66],"br",{},"\nИмя, вводящее в заблуждение, становится словарём.",[65,69],{},"\nФальшивая абстракция становится архитектурой.",[65,72],{},"\nОтсутствующий инвариант становится разрешением.",[13,75,76],{},"Обычный технический долг — это проблема стоимости изменений. Он замедляет работу. Генеративный технический долг — это ещё и проблема распределения вероятностей: он меняет то, какой код будет написан следующим.",[13,78,79],{},"Вот где появляется мультипликатор. Плохая структура портит контекст. Испорченный контекст ведёт к худшему сгенерированному коду. Этот код ещё сильнее портит структуру. Система начинает воспроизводить собственную путаницу.",[13,81,82],{},"Это родственно когнитивному долгу, но не тождественно ему. Когнитивный долг накапливается, когда команда пользуется абстракциями, которые перестала понимать. Генеративный долг накапливается, когда в кодовой базе живут спутанные понятия, которые модель склонна продолжать использовать.",[13,84,85],{},"Когнитивный долг — про то, что команда больше не понимает. Генеративный долг — про то, что модель теперь склонна воспроизводить.",[13,87,88],{},"Если код — это контекст, то архитектура становится способом направлять модель. И это меняет ценность рефакторинга.",[13,90,91],{},"Рефакторинг, который проясняет доменное понятие, помогает не только следующему человеку, читающему код. Он улучшает кодовую базу как промпт. Тест, в который зашит инвариант, не просто ловит регрессии. Он учит модель тому, что нарушать нельзя. Точно названная граница меняет то, что будущий сгенерированный код посчитает само собой разумеющимся.",[13,93,94],{},"Раньше плохая архитектура делала следующее изменение тяжелее. Теперь она ещё и учит машину делать следующее изменение неправильно — тем же самым способом.",{"title":96,"searchDepth":97,"depth":97,"links":98},"",2,[],"2026-05-14","Раньше технический долг был трением. С LLM он стал промптом: плохая архитектура учит машины повторять те же ошибки.","md","streamline-ultimate-color:programming-hold-code-2","og-image.jpg","ru",{},"/technical-debt-is-a-prompt-now-ru",{"wordCount":108},492,{"title":5,"description":100},"technical-debt-is-a-prompt-now-ru","1","ai","technical-debt-is-a-prompt-now","NZ-WBFh1hAvbFOwPvkLkZ2oMTUVWL47kkXgk9ICxnOM",1779095098383]