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.58K subscribers
Post #1887 1.17K

Forwarded from Ivan

Если сухо и коротко, то модель - это системное отображение оригинала.

Если формально, то https://sebokwiki.org/wiki/What_is_a_Model%3F

Модель - это прежде всего заменитель чего-либо (какого-то оригинала). Сидит клерк в банке и считает на калькуляторе процентную ставку по кредиту. Это оригинал.

Мы хотим этот расчёт автоматизировать. Для этого мы изучаем как он её считает. Получается модель предметной области, или аналитическая модель. Модель в problem space. Чтоб эту модель получить, нам нужно переработать существенную сложность.

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

Понимание того, какую проблему должна решить модель, даёт нам возможность определить релевантность аспектов оригинала решаемой проблеме.

У клерка есть водительские права - для расчета процентной ставки эта информация релевантна?

Кабинет клерка на 10 этаже. Эта информация релевантна когда мы называем его пассажиром лифта (отсюда, кстати, ключевая идея DDD об использовании лингвистических конфликтов для поиска моделей) и его нужно доставить на лифте на этот этаж. Но для расчёта ставки эта информация нерелевантна.

У клерка есть ставка ЦБР, которую он использует для расчета ставки банка. А вот это уже релевантно.

Релевантность позволяет упростить модель, устраняя из неё все нерелевантные аспекты оригинала. Это называется абстракция. Модель есть упрощение, а значит, модель есть абстракция.

Предположим, нам нужно проложить маршрут, например, из Москвы в Мурманск. Смогли бы мы это сделать по точной копии Земли в масштабе 1:1? Ни один человек не обладает такими когнитивными способностями, чтоб переварить такое количество нерелевантных деталей. Абстрагируясь от них мы создаём навигационную модель, которая содержит исключительно релевантные аспекты оригинала.

Итак. Модель есть упрощенная интерпретация оригинала с целью его замены для решения некой проблемы. Три важных момента:
1. Заменить что?
2. Заменить для чего?
3. Какие аспекты оригинала заменитель должен отображать?

Решаемая моделью проблема является причиной её создания. Это то, что должна делать модель, воплощённая автоматизированной системой. "Делать" на английском - "business". Поэтому логика модели называется business-logic.

Понимая логику работы клерка, мы начинаем готовить модель решения (solution space), чтоб воплотить её системой. В DDD ключевая суть заключается в том, чтоб аналитическая модель в problem space совпадала с моделью решения в solution space. Это коротко о том, что такое DDD.

Я, конечно, упростил и пропустил ряд важных моментов, таких как дихотомия функции и конструкции (подпереть дверь можно камнем, а можно и книгой). Чем отличается модуль от компонента и почему они могут не пересекаться (пример: ножницы из трёх модулей (две половинки и гвоздик) и двух компонентов (рокоятка и режущая кромка)). Как абстрактность слов приводит к лингвистическим конфликтам и позволяет обнаружить модели.

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