2.4Kпросмотров
55.3%от подписчиков
11 января 2026 г.
Score: 2.6K
Формализация DDD В обсуждениях DDD в пабликах часто можно встретить аргументы, мол DDD не конкретен, надуман. Напишу этот пост, чтобы скидывать ссылку, а не писать каждый раз заново. Кому хочется формальных моделей, welcome: Z Notation: https://www.cs.umd.edu/~mvz/handouts/z-manual.pdf Она практически идеально сочетается с DDD и фактически дает математически строгое описание модели, полученной с помощью моделирования предметной области. Сущности станут переменными в Z-схеме состояния, их атрибуты - типами переменных, инварианты - предикатами, а события и команды - z-схемами операций. Схемы состояния моделируют спецификацию состояния агрегата Z Notation формально валидируемая. Аспекты проектирования (транзакционность и подобное) Z не поддерживает, так что использовать можно в связке: - Z специфицирует корректность логики доменной модели - Aggregates обеспечивают согласованность времени выполнения. Очевидно, что проектирование - кросс-дисциплинарно в своей основе и одной формально моделью не обойтись. Можно и использовать расширение Z-Object для Z-Notation. Можно прикрутить еще TLA+ для агрегатов, это еще одна формальная спецификация: https://lamport.azurewebsites.net/tla/tla.html Многое в DDD - это рекомендации, рекомендации не формализуемы. Формализовать до определенного уровня можно тактические паттерны, но не стратегические, да и не к чему это. Однако возникает другой вопрос к любителям все формализовать, - а вы сами-то формальными моделями пользуетесь в повседневной работе? Проще и полезнее с прикладной точки зрения разобраться в DDD, который кросс-дисциплинарен или в паре формальных логик, выражение которых в отличие от модели Event Storming или диаграммы контекстов больше никто не поймет? Давайте уж лучше использовать полезные, широко применяемые инструменты, чтобы двигать индустрию вперед, а не пытаться показаться самыми умными через употребление умных слов, которые несмотря на всю правильность, в прикладном ключе усложняют жизнь в широком смысле. И я не против формальных методов, но там, где они приносят реальную пользу, а не для попыток за счет их существования обесценить другие полезные методы и подходы.
2.4K
просмотров
2168
символов
Нет
эмодзи
Нет
медиа

Другие посты @ru_arc

Все посты канала →
Формализация DDD В обсуждениях DDD в пабликах часто можно вс — @ru_arc | PostSniper