Direi che ci siamo, dato il contesto che abbiamo ipotizzato i nostri attori sono i seguenti:
- Marketing
- Warehouse
- Sales
- Shipping
- Publishing
La cosa importantissima che abbiamo identificato a questo punto, e che è la base fondante di un buon design, sono i rispettivi Owner dei vari modelli. Ognuno degli attori in gioco è responsabile di un pezzetto dell’informazione che vediamo stilizzata nella figura di cui sopra, e “Publishing” è responsabile non del tutto, come purtroppo l’immagine lascia intendere (non ho trovato un modo migliore per rappresentarlo), ma solo ed esclusivamente del dettaglio se il prodotto sia disponibile per l’acquisto o meno.
Abbiamo delle classi?
Stiamo parlando di modelli, ma in realtà stiamo discutendo di modelli in termini SOA, quindi no, non abbiamo delle classi; abbiamo piuttosto identificato i servizi, i quali a loro volta possono contenere uno o più aggregati e da zero a n modelli in lettura (benvenuto CQRS).
Alla fine del processo di decomposizione abbiamo quindi:
- MarketingService
- WarehouseService
- SalesService
- ShippingService
- PublishingService
Siamo autorizzati a cominciare a pensare in termini tecnologici :-)
Post in questa serie: