TGViewer
Лаборатория Математики и Программирования Сергея Бобровского Лаборатория Математики и Программирования Сергея Бобровского @lambda_brain · 1.41K subscribers
Post #2681 360
Ладно, вот серебряная пуля всей инженерии агентов: декомпозиция. Темка, которую святые computer science развивают лет 70. Всё те же пресловутые low coupling + high cohesion, по которой спрашивают на собесах  наверное каждого миддла.
Паттерны проектирования, GRASP, вот это вот всё.
 
Да, но почему тогда в мэйнстриме бесконечно длится "весь этот горький катаклизм, который я здесь наблюдаю, и Владимир Николаевич тоже"? :)
 
Ведь казалось бы, всё легко и просто: пообщались с заказчиками, подготовили какое-то неформальное ТЗ, декомпозировали его в более-менее чёткие спецификации/тикеты, затем эти спеки декомпозируем в абстракции (паттерны, модули, типы, классы, функции), забрасываем в жпт, профит!
 
Ведь факт, что уже даже средние нейронки сегодня способны реализовывать абстрактные задачи (по сути, чистые функции) на уровне  олимпийских чемпионов по программированию.
 
Ключевая засада тут - в композиции, в синтезе. Декомпозировать текстовое описание например в классы Гном, Крепость, Оружие - элементарно, да вот только как их собрать в целостную работающую систему? С помощью каких инструментов (паттернов...)? И главное, как?
 
Вот это чистый Software Design и есть. Вся вторая часть Лаборатории по сути именно этому и посвящена. Объектно-ориентированный анализ и проектирование, функциональное проектирование/функциональные архитектуры и т.д.
 
Но, признаю, явный акцент на декомпозиции я стал делать только в последнее время, с развитием AI, когда это стало ключевым по сути. И нейронки тут пока слабы, и не факт что усилятся - просто потому, что нету подходящих датасетов, и уже никогда не будет.

С этой засадой -- хрупким синтезом - и связан поток тысяч статей и библиотек по инженерии агентов, харнессам-шмарнесам и прочей малополезной ереси, которые пытаются решить её различными инженерными приляпками.
 
Вот что я имею в виду: бешеная скорость генерации кода нейронками повышает ценность качественной модульной архитектуры, потому что стремительно накапливается связанность/запутанность, и big ball of mud раздувается прямо на глазах :)
 
С другой стороны, дешевеющая переделка нейронками снижает ценность архитектурных вложений, потому что переписать становится дешевле, чем заранее грамотно проектировать. Но это ненадолго: такая переделка быстро перестаёт быть дешёвой, когда локальное изменение требует понимания, проверки и модификации всё более значительной части системы. Понадобилось подправить одну функцию, и агент попутно перефигачил 128 файлов, где она использовалась, и наверняка что-то поломал в логике (на "Неявных механизмах логики" разбираю многие десятки таких побочек, и что с этим делать).
 
Теперь агент молниеносно превращает неоднозначность в большой объём кода, а то и спецификаций, и вроде бы всё смотрится согласованными. Ошибочное допущение успевает распространиться в проекте быстрее, нежели человек его заметит, а внешняя стройность и успешные тесты часто создают ложную уверенность что всё норм.
 
Короче, декомпозиция -- это не про "разбить на побольше маленьких задачек", а про то, как выбирать границы, внутри которых можно независимо понимать, проверять и реализовывать спеки, и как синтезировать из маленьких артефактов корректно работающую систему без потери общего смысла. Не принципиально новая проблема, но прежние подходы оказались слишком хрупкими -- ломаются под невиданным ранее темпом кодогенерации.
 
То есть когда декомпозиция проводится без сохранения целостности, это никакое не решение проблемы, а карго-культ. Сложность просто переносится на интеграцию, которая исходно не присутствовала в модели вообще!
 
Так вот мой подход: "ТЗ декомпозировали в более-менее чёткие спецификации/тикеты, затем эти спеки декомпозируем в абстракции (паттерны, модули, типы, классы, функции)" - добавляется промежуточный шаг, декомпозируем в абстракции, но не сразу в типы и функции, а в паттерны теории категорий (Last Principles Framework), и вот тогда уже появляется и явный синтез, и автоматическая сборка, и математически абсолютный Software Design.
 
Но, да, думать при этом придётся существенно больше и существенно тяжелее :) И нейронкам особо не делегируешь. Но зато и профит несравнимый.
  • 👍 30
  • ❤ 10
  • ✍ 3
  • 🙏 3
More from @lambda_brain
  1. Oct 11, 2026Я такой: - вот эта фича позволит реализовывать популярный класс твоих задачек в 2,7 раза б…
  2. Oct 10, 2026Если бы вы направили всю энергию, которую тратите на беспокойство о потере работы из-за ис…
  3. Oct 10, 2026Продолжаю работу с ментатами 🤓 Буквально в сентябре потратил 2 недели впустую. Работал не…
  4. Oct 9, 2026Про очередной хайп, как суперинтеллект якобы решил 700 сложных математических проблем, я п…
  5. Oct 8, 2026Пацаны волнуются, не ухожу ли я в геймдев ↑↑↑ не-не (но название dwarf fortness застолблю…
  6. Oct 5, 2026Мнения экспертов по индустрии разработки игр в целом можете при желании найти сами на ютуб…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →