Il libro di Vernon Implementare DDD e modellare i concetti sottostanti

3

Le domande seguenti si riferiscono agli esempi presentati in Implementazione di DDD

Nell'articolo possiamo vedere dalla Figura 6 che sia BankingAccount che PayeeAccount rappresenta lo stesso concetto sottostante di Conto bancario BA

1. su pagina 64 l'autore fornisce un esempio di una organizzazione editoriale , in cui il ciclo di vita di un libro passa attraverso diverse fasi ( proponendo un libro , processo editoriale , traduzione del libro ...) e in ciascuna di queste fasi questo libro ha una definizione diversa.

Ogni fase del libro è definita in un diverso Contesto Limitato , ma tutte queste diverse definizioni rappresentano ancora lo stesso concetto di base di un libro , proprio come entrambi BankingAccount e PayeeAccount rappresentano lo stesso concetto sottostante di BA

2.

a) Comprendo perché User non dovrebbe esistere in Contesto di collaborazione (CC), ma dovrebbe essere definito all'interno di Contesto identità e accesso IAC ( pagina 65 ). Tuttavia, fare User (IAC), Moderator (CC), Author (CC), Owner (CC) e Participant (CC) rappresentano tutti diversi aspetti di lo stesso concetto di base ?

b) Se sì, significa che CC contiene diversi elementi del modello ( Moderator , Author , Owner e Participant ), ognuno rappresentante aspetto differente dello stesso concetto di base (proprio come entrambi BankingAccount e PayeeAccount rappresentano lo stesso concetto di base di un BA ).

Ma non è considerato una duplicazione di concetti (libro di Evan, pagina 339), poiché diversi elementi del modello in CC rappresentano lo stesso concetto di base

c) Se Moderator , Author ... non rappresentano lo stesso concetto di base , allora quale concetto di base rappresenta ciascuno?

3. in un sistema di e-commerce , il termine Cliente ha più significati (pagina 49): quando l'utente sta sfogliando < strong> Catalogo , Cliente ha un significato diverso rispetto a quando l'utente inserisce un Ordine .

Ma queste due diverse definizioni di Cliente rappresentano lo stesso concetto di base , proprio come entrambi BankingAccount e PayeeAccount rappresenta lo stesso concetto di base di BA ?

UPDATE:

2.

2a) As with the book, they refer to the same identity but express different aspects of that identity in a specific context. Sort of like a single object implementing multiple interfaces which embody the roles that object plays.

a) La presenza di due elementi del modello (entrambi all'interno dello stesso BC ), ciascuno rappresentante aspetto diverso dello stesso concetto sottostante , determina che Evans chiama concetti duplicati ?

b) Ho pensato che i termini " che rappresentano aspetti diversi di un'identità all'interno di particolari BC " e " che rappresentano aspetti diversi dello stesso concetto sottostante all'interno di particolari BC " sono intercambiabili ( cioè significano la stessa cosa)? In caso contrario, come si differenziano?

c)

Sort of like a single object implementing multiple interfaces which embody the roles that object plays.

Supponevo che ogni ruolo rappresentasse un aspetto particolare del concetto sottostante , ma stai dicendo che non lo è? Che cos'è allora il modello ruolo e come è la cosa che i modelli di ruolo concettualmente diversi da un aspetto del concetto sottostante ?

2. UPDATE:

2.

a)

Does having two model elements ( both within same BC ) , each representing different aspect of the same underlying concept, result in what Evans calls duplicate concepts?

     

Non ricordo cosa Evans abbia chiamato concetti duplicati quindi non sono sicuro.

Nella pagina 339 Evans descrive Concetti duplicati come una delle due schegge concettuali che causano l'unificazione di un modello da abbattere. Ecco la citazione:

Combining elements of distinct models causes two categories of problems: duplicate concepts and false cognates. Duplication of concepts means that there are two model elements ( and attendant implementations ) that actually represent the same concept. Evry time this information changes, it has to be updated in two places with conversions. Every time new knowledge leads to a change in one of the objects, other has to be reanalyzed and changed too. Except the reanalysis doesn't happen in reality, so the result is two versions of the same concept that follow different rules and even have different data.

b) ec)

This may be a linguistic issue. The way I see it, an identity can have different concepts associated with it depending on the context.

Again this seems to be a linguistic issue. You use "underlying concept" to refer to identity which I think isn't clear enough to distinguish from simply "concept" which by itself isn't sufficient.

Forse quanto segue renderà più chiare le mie domande: per concetto di fondo mi riferisco a un aspetto della realtà (cioè la cosa) che proviamo a modellare.

grazie

    
posta EdvRusj 01.07.2013 - 18:04
fonte

1 risposta

3

1) I modelli di libri in diverse fasi si riferiscono allo stesso libro. Non direi che si riferiscono allo stesso concetto di base perché i concetti sono diversi nei diversi contesti. Fanno riferimento allo stesso libro in quanto l'identità del libro è condivisa tra i BC.

2a) Come per il libro, si riferiscono alla stessa identità ma esprimono aspetti diversi di tale identità in un contesto specifico. Un po 'come un singolo oggetto che implementa più interfacce che incorporano i ruoli riprodotti dall'oggetto.

2b) Non è una duplicazione di concetti perché i concetti sono diversi, solo l'identità è condivisa. Ricorda, l'obiettivo di DDD e la programmazione in generale è creare un modello del tuo dominio. Tutti i modelli sono incompleti, ma i buoni modelli forniscono utilità.

2c) Puoi dire che un moderatore è un ruolo giocato da un utente in un contesto specifico.

3) Come sopra. Si riferiscono alla stessa identità, alla stessa persona, ma a ruoli diversi.

Aggiorna

Does having two model elements ( both within same BC ) , each representing different aspect of the same underlying concept, result in what Evans calls duplicate concepts?

Non ricordo cosa Evans abbia chiamato concetti duplicati quindi non sono sicuro.

I thought terms "representing different aspects of an identity within particular BC" and "representing different aspects of the same underlying concept within particular BC" are interchangeable ( ie they mean the same thing )? If not, how do they differ?

Questo potrebbe essere un problema linguistico. Per come la vedo io, un'identità può avere diversi concetti associati a seconda del contesto.

I assumed each role represents a particular aspect of the underlying concept, but you're saying it doesn't? What then does role model and how is the thing that role models conceptually different from an aspect of the underlying concept?

Anche in questo caso sembra essere un problema linguistico. Usi il "concetto sottostante" per riferirsi all'identità che, a mio parere, non è abbastanza chiaro per distinguere dal semplice "concetto" che di per sé non è sufficiente.

    
risposta data 01.07.2013 - 19:51
fonte

Leggi altre domande sui tag