Формализация 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 или диаграммы контекстов больше никто не поймет? Давайте уж лучше использовать полезные, широко применяемые инструменты, чтобы двигать индустрию вперед, а не пытаться показаться самыми умными через употребление умных слов, которые несмотря на всю правильность, в прикладном ключе усложняют жизнь в широком смысле. И я не против формальных методов, но там, где они приносят реальную пользу, а не для попыток за счет их существования обесценить другие полезные методы и подходы.
Формализация DDD В обсуждениях DDD в пабликах часто можно встретить аргументы,…
Из этого канала
- #658Такие дела =)
Такие дела =)
- #659"А еще есть сомневающиеся в возможностях llm :) 10 минут моего времени 35k…
"А еще есть сомневающиеся в возможностях llm :) 10 минут моего времени 35k строк кода на бэке 40k строк кода на фронте Сказка… а теперь берем эту сказку и…
- #660Supply Chain Attack Раньше эта уязвимость казалась экзотикой, а теперь ты…
Supply Chain Attack Раньше эта уязвимость казалась экзотикой, а теперь ты посмотри что.
- #655У меня есть школа архитектора, загнал материалы в notebooklm, попросил сделать…
У меня есть школа архитектора, загнал материалы в notebooklm, попросил сделать простой обзор «как стать архитектором», без технических деталей, ну он просто в…
- #654Новые языки будут 🙂 Спасибо всем, кто принял участие в обсуждение под…
Новые языки будут 🙂 Спасибо всем, кто принял участие в обсуждение под предыдущим постом, это привело к изменению моей точки зрения 🤝 Во-первых современные LLM…