TGViewer
emacsway-log: Technical Leadership, Management, Software Architecture, DDD, Microservices, Distributed Systems, XP, Agile, etc. emacsway-log: Technical Leadership, Management, Software Architecture, DDD, Microservices, Distributed Systems, XP, Agile, etc. @emacsway_log · 3.59K subscribers
Post #1899 691
В последнее время часто слышу сетование на то, что LLM сделал не то и не так.

Давайте посмотрим что такое архитектурное решение на примере покупки курительной трубки. Решение должно содержать ответ на вопросы:

1. Какая модель трубки?
1.1. Форма чаши (бильярд, бренди, яйцо, яблоко, бульдог/родезиум...)
1.2. Изгиб (прямая, 1/4 бент, 1/2 бент...)
1.3. Способ осушения (естественное осушение (канадка, ловат), системная конструкция на эффекте Джоуля-Томсона, фильтр 9 мм, фильтр 6 мм, конденсатор, без осушения...)
1.4. Загубник (обычный, P-Lip...)
1.5. Материал трубки (бриар, морта, пенка, фруктовое дерево...)
1.6. Материал мундштука (эбонит, акрил...)
1.7. Финишная обработка (бласт (пескоструй), рустирование, гладкая, лаковая, восковая...)
1.8. Размеры и форма камеры.
1.9. Размеры и пропорции трубки.
1.10. Масса трубки.
1.11. Конструктивные особенности (шпигот, sitter...)
1.12. Цвет (чаши и мундштука)

2. Производитель трубки.

3. Конкретная реализация трубки:
3.1. Точность центровки дымового канала в центр дна камеры.
3.2. Соосность дымового канала мортиза и мундштука (критично для безфильтровых).
3.3. Наличие шпаклевки, питов, каверн.
3.4. Натяг цапфы мундштука.
3.4. Дефекты (сколы, царапины).

Естественно, если просто сказать LLM "предложи мне трубку", то он может выбрать какой-нибудь калабаш просто потому, что поиск этого варианта оказался наименее энергозатратным.

Архитектурное решение - это многокритериальная задача. Если не задать критерии, то никакое решение не будет верным.

Архитектурное решение состоит из дивергентной фазы (расширение списка вариантов) и конвергентной фазы (сокращение вариантов решения до одного). Самое важное - это критерии для сокращения вариантов, т.е. наличие ясных причин, почему тот или иной вариант нам не подходит. Без критериев решение будет случайным и чаще всего продиктовано когнитивными искажениями (например, "мы всегда так делали"...). Упущенный критерий вылезет уже в процессе эксплуатации решения. Как сказал Роберт Мартин, архитектура - это о том как не надо делать.

Требования к трубке могут находиться в противоречиях (обратно коррелировать). Например, трубка бульдог бент имеет красивые геометрически правильные грани, т.е. удовлетворяет требованию эстетики. Но это достигается в ущерб требованию практичности, т.к. острые грани имеют маленький запас прочности и при малейшем усилии заминаются или скалываются. На гранях всегда возникает повышенное удельное давление (от руки или стенок футляра) и они быстро "лысеют".

Собственно, в разрешении этих противоречий и заключается архитектура. Для этого нужно взвесить мотивы требований, какую цель они достигают, какую проблему и для кого (стейкхолдер) они решают. Одно дело - трубка для презентабельных клубных встреч. Другое дело - для охоты.

Для охоты нужен бент (можно держать в зубах без помощи рук), бласт (пескоструйная обработка маскирует царапины), шпигот (конусное крепление мундштука разработано специально для полевых условий - не заклинивает в условиях повышенной влажности). Ну и в эту конструкцию хорошо вписывается системная конструкция осушения (не нужно прерывать охоту если закончились фильтры).

Для яхты хорош легкий Lovat, который "не болтается под подбородком" и всегда в поле зрения. Конструкция естественного осушения позволяет длительное время обходиться без фильтров.

Может случиться так, что на рынке нет подходящей реализации. Например, трубка выбранной модели и производителя имеет дефекты. Такое случается даже с дорогими трубками, например, Ashton нередко ругают за центровку. И тогда нужно посмотреть, можно ли изменить баланс требований. Это Twin Peak - конструктивные ограничения изменяют требования.

LLM эти критерии прекрасно знает, но вот незадача, промпт может быть составлен таким образом, что эти нейроны просто не будут активированы. Поэтому их нужно активировать явно: выпиши в ADR draft все критерии принятия/оценки решения.

Следующий этап - составление матрицы принятия решения. Никакой критерий не плох сам по себе - он может просто соответствовать или не соответствовать цели. Что хорошо для презентабельной клубной встречи - плохо для охоты. Поэтому матрица конекстно-зависима.

Заданные критерии позиционируют решение (т.е. сокращают количество вариантов). Их можно взвесить и приоритезировать варианты решения математически. Если мы не находим "коробочного" решения, то мы может сделать индивидуальный заказ или выбрать другое решение из приоритезированного списка (пойти на компромисс).

Ну а чтобы не водить LLM за руку, можно эту функцию возложить на LLM.
  • 👍 8
  • ❤ 7
  • 🔥 1
More from @emacsway_log
  1. Oct 3, 2026"Психология конструкторского труда формирует у человека очень важное качество: обязательно…
  2. Oct 3, 2026В последнеё время в пабликах стала актуальной темой о том, как обрести уверенность в услов…
  3. Oct 1, 2026Как не послать человека, но чтобы при этом он хорошо прочувствовал где его место? Мне этот…
  4. Sep 28, 2026Встретились арх/ит друзьями и знакомыми поговорить про ИИ, архитектуру, про будущее. В общ…
  5. Sep 23, 2026И Джессика пишет книгу! https://technicspub.com/ontology-pipeline/
  6. Sep 23, 2026Кстати 2, нашего полку прибыло: Intentional Arrangement SKOS (https://github.com/jesstalis…
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 →