Ho letto un po 'di DDD da quando mi sono imbattuto in un'applicazione web, presumibilmente scritta secondo i principi del DDD.
Alcune cose che vedo però in questa applicazione mi sembrano totalmente assurde. Come ho capito, il punto principale del DDD riguarda il "linguaggio ubiquitario" condiviso da analisti e sviluppatori, in modo tale che gli artefatti del software corrispondono approssimativamente alle nozioni / nomi / verbi / ... nel "linguaggio ubiquitario". Ciò dovrebbe consentire una traduzione più rapida dei requisiti degli analisti in un software funzionante, dal momento che, ancora una volta, si deve pensare meno a come modellare i requisiti degli analisti e la manutenzione è più semplice.
Tuttavia quello che vedo nell'applicazione web che ho trovato è che, ad esempio, cosa sarebbe altrimenti modellato da una semplice enumerazione, come
public enum Car{
AUDI,
BMW,
VOLVO
}
è modellato nel codice da tre classi diverse Audi, Bmw, Volvo.
Allo stesso modo, chiama essenzialmente lo stesso servizio, ad es. CarService.buy(Car car)
, con diversi valori di parametri, sono fatti definendo una classe separata per ognuna di queste chiamate di servizio, AudiService.buy()
, BmwService.buy()
, VolvoService.buy()
.
Questo è un modo tipico di scrivere applicazioni DDD?