Я читал о DDD и ограниченных контекстах, и я думаю, что я ошибаюсь. Сначала мне понравилась идея субдоменов и ограниченных контекстов, я понял это так: есть программное обеспечение, которое нужно разработать, но нападать на все сразу слишком много, поэтому мы разбиваем его на логические части и разрабатываем каждый раз. Другая проблема, которую мы решаем, - это двусмысленность на вездесущем языке.
Это заставило меня задуматься о ограниченных контекстах, поскольку в основном это просто папки, в которых я группирую и привязываю код, связанный с определенной частью приложения. Этот код, который, как я полагал, составлен из таких вещей, как
- Модель домена этого ограниченного контекста, включая абстракции для репозиториев и служб
- Уровень инфраструктуры для этого ограниченного контекста, реализации репозиториев и т.д.
Конечно, если модель домена и инфраструктура должным образом разделены в ограниченном контексте.
Далее, однако, кажется, что каждый ограниченный контекст является полным приложением по своему усмотрению. Кажется, иногда, что каждый ограниченный контекст имеет свой собственный прикладной уровень, например.
Это меня смутило, потому что иногда я не хочу в конечном итоге разрабатывать тонны приложений, я только один, чтобы развить его. Ограниченное разделение контекста приложения должно было создать одно приложение, а не множество приложений для интеграции.
Я, кажется, этот вопрос, где @MikeSW утверждает, что оба подхода, представленные OP, действительны. Я спрашиваю о третьей структуре:
<bc 1>
|_ domain
|_ infrastructure
<bc 2>
|_ domain
|_ infrastructure
|_ application
|_ presentation
По крайней мере, для всех приложений, которые, как мне кажется, это имеет смысл. Я хочу одно приложение, а не несколько приложений с несколькими презентациями, но я все же хочу иметь возможность разбить домен и воспользоваться такими вещами, как "ограничение вездесущего языка".
Итак, ограниченный контекст - полное применение? Или можно использовать ограниченный контекст, как я понял, и чувствовал себя более полезным? Есть проблемы с моим подходом?