Ho appena iniziato a lavorare su un progetto e stiamo usando la progettazione guidata dal dominio (come definito da Eric Evans in Domain-Driven Design: Tackling Complexity in the Heart of Software . Credo che il nostro progetto sia sicuramente un candidato per questo progetto modello come Evans lo descrive nel suo libro.
Sto lottando con l'idea di refactoring costantemente.
So che il refactoring è una necessità in qualsiasi progetto e accadrà inevitabilmente quando il software cambia. Tuttavia, nella mia esperienza, il refactoring si verifica quando cambiano le esigenze del team di sviluppo, non come cambia la comprensione del dominio ("refactoring per una maggiore comprensione" come lo chiama Evans). Sono più preoccupato per le scoperte nella comprensione del modello di dominio. Capisco apportare piccole modifiche, ma cosa succede se è necessaria una grande modifica nel modello?
Qual è un modo efficace per convincere te stesso (e gli altri) che dovresti refactoring dopo aver ottenuto un modello di dominio più chiaro? Dopotutto, il refactoring per migliorare l'organizzazione o le prestazioni del codice potrebbe essere completamente separato da quanto espressivo in termini di codice linguistico onnipresente. A volte sembra che non ci sia abbastanza tempo per refactoring.
Fortunatamente, SCRUM si presta da solo al refactoring. La natura iterativa di SCRUM semplifica la costruzione di un piccolo pezzo e lo modifica. Ma col tempo quel pezzo diventerà più grande e se avessi una svolta dopo che quel pezzo è così grande che sarà troppo difficile cambiarlo?
Qualcuno ha lavorato a un progetto che utilizza la progettazione guidata dal dominio? Se è così, sarebbe bello avere qualche idea su questo. Mi piacerebbe in particolare ascoltare alcune storie di successo, dal momento che DDD sembra molto difficile da ottenere.
Grazie!