Nello studio del design orientato al dominio (DDD), mi sono imbattuto nel concetto di sottodominio, ma penso di non averlo ancora capito. La mia prima comprensione di questo è che un sottodominio è un sottoinsieme del dominio dell'applicazione. In altre parole, è una partizione dello spazio del problema. Ho letto che ci sono tre tipi di sottodominio:
- sottodomini principali
- supporto dei sottodomini
- sottodomini generici
La mia comprensione era un po 'come questa: selezioniamo il dominio dell'applicazione, ed è piuttosto complesso. Poi lo esaminiamo e scopriamo un modo per suddividerlo in parti più semplici, alcune delle quali sarebbero sottodomini di base e alcuni dei quali sarebbero di supporto, mentre altri sarebbero generici.
Nella ricerca di ulteriori informazioni, ho trovato alcune persone che dicono qualcosa di diverso: esiste solo un sottodominio principale one , insieme ad alcuni sottodomini generici e nessun sottodominio di supporto di sorta.
Quindi le mie domande sono:
- Quali sono i sottodomini, veramente ? La mia prima comprensione è corretta, o è la seconda cosa che leggo?
- Come è utile questa idea dei sottodomini?
- Quali sono alcuni buoni criteri per l'identificazione dei sottodomini? Cosa dovremmo avere in mente quando decidiamo i sottodomini per utilizzare meglio questa idea?
EDIT: cercando un po 'di più, ho trovato il seguente:
Think of an e-Commerce system. Initially you can tell that it is an application of a shopping context. If you look more closely, you will see there are other contexts too, such as Inventory, Delivery, Accounts, etc.
Questo è quello che inizialmente pensavo fosse un sottodominio. Selezioniamo un dominio (il dominio dello shopping) e lo suddividiamo in sottodomini più semplici (inventario, consegna, account e così via). Ma nel testo in questione, si riferiscono a questi come contesti. Quindi la mia precedente comprensione non è sottodomini ma contesti?
Ho trovato una domanda qui su questo sito sulla differenza tra un sottodominio e un contesto limitato. La risposta afferma che i sottodomini sono una partizione dello spazio del problema, mentre i contesti sono partizioni dello spazio della soluzione. Tuttavia, separare il contesto dello shopping in inventario, consegna, account, ecc. Non è una partizione concettuale. Cioè, è nello spazio del problema piuttosto che nello spazio della soluzione?