Qual è esattamente il termine "modello" definito nel contesto dello sviluppo basato sul dominio?

2

Sto leggendo "Patterns, Principles, and Practices of Domain-Driven Design" di Scott Millett e Nick Tune e finora è stata una grande lettura (i primi 2 capitoli sono stati letti), ma un termine sembrano usare molto e sembra avere un significato abbastanza astratto è il termine "modello". Parlano dello sviluppo di un modello utilizzando la conoscenza del dominio acquisita da eventi come Event Storming e Impact Mapping, ma cos'è esattamente un "modello"? La mia ipotesi migliore è in realtà l'aggregazione del modello di business (regole e processi che gli stakeholder aziendali considerano come requisiti del business) e il modello di analisi (logica e processi del software stesso) insieme probabilmente a cose più concettuali, ma io sono incerti.

Qualcuno potrebbe darmi un esempio di cosa significherebbe "definire il tuo modello" nel mondo del DDD? Inoltre, quando l'autore dice "modello" presumo che intenda "modello di dominio" ... ma di nuovo potrei sbagliarmi.

Qualsiasi chiarimento su ciò che è in qualche modo sarebbe molto utile. Grazie

    
posta Matt Hintzke 24.10.2018 - 01:19
fonte

2 risposte

3

Per Domain Driven Design, trovo il modo migliore di iniziare con Evans Design guidato da domini , e lavora da lì.

To create software that is valuably involved in user's activities, a development team must bring to bear a body of knowledge related to those activities. The breadth of knowledge required can be daunting. The volume and complexity of information can be overwhelming. Models are tools for grappling with this overload. A model is a selectively simplified and consciously structured form of knowledge. An appropriate model makes sense of information an focuses it on a problem.

Successivo

In domain-driven design, three basic uses determine the choice of a model.

  1. The model and the heart of the design shape each other....

  2. The model is the backbone of a language used by all team members....

  3. The model is distilled knowledge. The model is the team's agreed-upon way of structuring domain knowledge and distinguishing the elements of most interest.... The next three chapters set out to examine the meaning and value of each of these contributions in turn....

    
risposta data 24.10.2018 - 06:56
fonte
2

La tua intuizione è corretta, il termine "modello" è molto astratto. È una sorta di "conoscenza distillata" di sorta, ma come dovrebbe apparire, o cosa intendiamo per "modello" o "modello di dominio" (o se i due sono uguali) dipende molto dal tuo contesto (progetto , paradigma, squadra, linguaggio, idiomi, ecc.)

Esempi

Nella programmazione alcune persone si riferiscono ai "dati" come "il modello" (ne troverai molti anche qui su stackoverflow). Conoscete quei diagrammi UML, con classi e campi e relazioni. Questo è a volte indicato come " oggetto anemico " "modello". Nel mio attuale progetto questo è anche definito "il modello di business".

Altre persone (me compreso) vedrebbero le classi e il loro comportamento come "il modello". Questo è talvolta chiamato "modello di dominio ricco".

Alcune persone suggeriscono (tra cui Eric Evans ) che il modello è "solo" una parte (piccola) di l'applicazione, e ci sono "altre cose" non direttamente correlate, come Servizi, archivi , interfaccia utente e altre cose.

Ancora una volta, altre persone insistono sul fatto che "il modello" nel suo complesso è l'applicazione (come me e io credo David West ad esempio).

Quindi ...

Quello che sto dicendo è che, naturalmente, c'è un significato per la parola, ma non è direttamente pratico né obiettivo. Devi capire da te cosa significava l'autore, ed è del tutto possibile che il prossimo libro o articolo che hai letto significhi una cosa diversa.

    
risposta data 24.10.2018 - 13:54
fonte

Leggi altre domande sui tag