Не совсем игрушку, но вполне себе для развлечений 🙂
В последнее время я много работаю с доменами. Иногда — сразу с несколькими. И в какой-то момент поймала себя на мысли:
а неужели за все эти годы никто толком не написал ничего, что помогало бы нормально проектировать домены?
Не диаграммки рисовать, а именно думать.
Если вы со мной давно, то знаете: я часто объясняю DDD через теорию множеств и матмоделирование. Для меня DDD — это сначала модель, смыслы и инварианты, а уже потом код. И я решила проверить гипотезу: если так, то, возможно, существуют формальные математические нотации, которые могут помочь с проектированием доменов.
Полезла копать и нашла три штуки:
📘 Z — формальная спецификация на множествах и логике, чисто про описание домена
📘 B Method — родственник Z, но уже с уклоном в доказуемую корректность и путь к реализации
🌐 Alloy — реляционная модель + автоматическая проверка на противоречия
Пока это не пост про применимость и не гайд «как юзать». Я просто делюсь тем, что нарыла. Пробовать и рассказывать, как это ложится на DDD, буду чуть позже — когда сама поковыряю.
Я хочу проверить "руками" Z и Alloy нотации. Так как по Z — офигенный гайд, я — продакт и могу "не думать" про реализацию (хотя бы детально); а Alloy привлекает возможностью "ломать", ведь сложно не придумать, а найти все узкие места!
Почему делюсь уже сейчас? А вдруг вам тоже интересно.
И потому что удивительно: на русскоязычном пространстве про эти нотации почти тишина — ни докладов, ни обзоров.
Если вы с этим работали или видели хорошие материалы (не обязательно на русском) — поделитесь в комментариях. Правда интересно!
Всем хорошей среды.
