Progettazione basata sul dominio (DDD)

La progettazione guidata dal dominio (DDD) è una filosofia di sviluppo del software incentrata sul dominio, o sfera della conoscenza, di coloro che lo utilizzano. L'approccio consente lo sviluppo di software focalizzato sui requisiti complessi di coloro che ne hanno bisogno e non spreca sforzi per nulla di non necessario. I clienti della progettazione basata sul dominio sono spesso aziende di livello aziendale.

Per progettare da una prospettiva basata sul dominio, è necessario definire l'area di competenza o il dominio dell'azienda. Ci sono domini di supporto e principali. Il dominio principale di un'azienda è unico e centrale per il suo funzionamento, quindi riceve la maggior parte dell'attenzione, del tempo e delle risorse nel processo di sviluppo. I domini di supporto sono più generali come denaro, servizio o tempo. Questi domini vengono quindi modellati nella lingua e quindi nel codice corrispondente. Se un dominio non può essere facilmente definito nella lingua, non è pronto per essere codificato. Se viene apportata una modifica in un dominio aziendale, in genere sarebbe necessaria una modifica corrispondente nel codice.

Il libro Domain Driven Design di Eric Evans ha introdotto la filosofia. La progettazione basata sul dominio si basa su analisi e progettazione orientate agli oggetti. L'approccio facilita la comunicazione sul progetto in questione e limita la focalizzazione sui bisogni centrali del dominio. Allo stesso tempo, la progettazione guidata dal dominio richiede una conoscenza approfondita di un dominio ed è poco adatta a progetti altamente tecnici.