Alkampfer's Place

Il blog di Gian Maria Ricci
posts - 659, comments - 871, trackbacks - 80

My Links

News

Gian Maria Ricci Mvp Logo CCSVI in Multiple Sclerosis

English Blog

Tag Cloud

Article Categories

Archives

Post Categories

Image Galleries

I miei siti

Siti utili

DDD

Un pattern non è per sempre (o ovunque)

Questa mia convinzione è valida in molte situazioni ed per molti progetti, dove spesso nel team esiste la convinzione che: le tecnologie usate in un software debbano per forza essere omogenee ed utilizzate dappertutto. Un palese esempio di questa sindrome si ha quando le obiezioni all’uso di Nhibernate o Entity Framework sono: “cosa succede poi se una query non riusciamo a farla in LINQ o con HQL?”, oppure “non conviene perché poi sappiamo che per i report o per le operazioni massive un ORM non è adatto”. Il problema alla base di queste obiezioni è principalmente questo: se si...

posted @ Wednesday, June 11, 2014 9:03 AM | Feedback (1) | Filed Under [ DDD ]

Che tipo di Id uso per l’Aggregate Root

In CQRS ma in generale in DDD è buona norma identificare il concetto di AggregateRoot con una classe specifica, e se fate EVENT SOURCING è una funzionalità praticamente obbligatoria, perchè l’AR si occupa anche di gestire il dispatch dei DOMAIN EVENTS sia agli eventy Applyer, sia anche al mondo esterno. In questo caso molto spesso si tende a dotare la classe base astratta AggregateRoot di un Id che solitamente è di tipo GUID, oppure di tipizzarla con un generics su T in modo che T identifichi il tipo di dato usato per l’id. In questi gg sto “giocando” un...

posted @ Thursday, August 16, 2012 10:37 AM | Feedback (4) | Filed Under [ DDD ]

Il vantaggio di ragionare ad Eventi

Sebbene sia possibile adottare approcci CQRS su architetture classiche è indubbio che il paradigma CQRS va a braccetto con il concetto di DOMAIN EVENT, questo perché è possibile costruire i QueryModel direttamente elaborando lo stream di eventi del dominio, azzerando di fatto ogni dipendenza dello storage e soprattutto applicando logiche di generazione del QueryModel (Denormalizzatori) su eventi del “passato”. In questo piccolo esempio fatto su GitHub su cui stiamo giocando io, Alessandro ed Andrea un esempio molto semplice e primitivo di gestione di querymodel viene fatto su una struttura basata su EventSourcing, dove lo storage è gestito dalla libreria...

posted @ Saturday, August 4, 2012 10:58 AM | Feedback (0) | Filed Under [ DDD ]

CSDD–programming pornography

In realtà la frase “programming pornography” la ho sentita da Greg Young durante il DDD Day, ma si allinea ad uno degli altri importanti concetti che sono emersi durante il campus DDD. In questo caso Alberto ha sottolineato il fatto di come nelle discussioni nei gruppi DDD troppo spesso si parla di tecnicismi e nella maggioranza dei casi si parla quasi sempre di ORM. Il concetto in questo caso è che il vantaggio maggiore del DDD è il metodo di approcciare il problema, ovvero cercare di sviscerare le logiche ed individuare le Entità che possono meglio modellare le logiche...

posted @ Monday, October 31, 2011 12:33 PM | Feedback (4) | Filed Under [ DDD ]

CSDD–Aggregate root

Dopo la prima lettura del libro di Evans (e vi assicuro che vale la pena di leggerlo almeno due volte), uno dei principi che maggiormente ho apprezzato è senza dubbio quello dell’AGGREGATE ROOT e degli AGGREGATES in generale. An aggregate is a cluster of associated objects that we treat as a unit for the purpose of data changes.     L’importanza di questo pattern è la stessa del BOUNDED CONTEXT perchè porta alla riduzione della complessità, limitando la possibilità di instaurare relazioni tra gli oggetti. Il livello di granularità di frazionamento di questo pattern è minore del...

posted @ Tuesday, October 18, 2011 8:01 PM | Feedback (3) | Filed Under [ DDD ]

Considerazioni sul campus #CSDDD

Questo fine settimana, il sottoscritto ed altre strane persone :), si sono chiuse in un agriturismo marchigiano e sotto la guida di ZioBrando hanno passato tutto il fine settimana a parlare di DDD. (trovate alcune foto nel mio profilo facebook). L’esperienza è stata decisamente positiva, diciamo che mi sono convinto ancora di più che il DDD sia applicabile in molti più scenari di quello che pensavo. L’unica pecca è stata l’avere scritto poco codice e sostanzialmente ce ne siamo andati con ancora alcuni dubbi a livello “implementativo”, del tipo, come faccio cosa? Un handler di un domain event ha...

posted @ Tuesday, September 6, 2011 9:32 AM | Feedback (0) | Filed Under [ DDD ]

Repository, altre considerazioni

In un thread su guisa si è un po parlato di costruttori e persistenza. Sempre continuando il discorso del repository, volevo dare la mia opinione su come i costruttori si legano al repository. Come anche Fowler dice, la costruzione di un oggetto non è pertinenza del repository, ma il repository ha il seguente scopo Mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects. Per questa ragione il ciclo di vita di un oggetto è il seguente: chiamando uno dei costruttori o un metodo factory si crea una nuova istanza, questa nuova istanza è transiente per...

posted @ Friday, September 28, 2007 3:00 PM | Feedback (0) | Filed Under [ DDD ]

Repository e LINQ

Premesso che sono alle prime armi con LINQ, in questo post faccio vedere una prima ipotesi di come il nostro repository possa dare funzionalità di query per LINQ grazie al progetto LINQ to NHIbernate. Alk.

posted @ Friday, August 10, 2007 5:10 PM | Feedback (0) | Filed Under [ DDD ]

Repository – Fluent Query Interface

Quarta parte degli articoli sul repository.

posted @ Tuesday, August 7, 2007 2:52 PM | Feedback (1) | Filed Under [ DDD ]

Repository non generico

Terza parte della serie di post su come realizzare un repository pattern.

posted @ Monday, August 6, 2007 5:47 PM | Feedback (3) | Filed Under [ DDD ]

Full DDD Archive

Powered by:
Powered By Subtext Powered By ASP.NET