Evita la traduzione ove possibile, perché ogni traduzione è uno sforzo aggiuntivo e può introdurre bug.
Il contributo chiave di "Domain Driven Design" alla moderna ingegneria del software è il concetto di Ubiquitous Language , che è un unico linguaggio utilizzato da tutti gli stakeholder di un progetto. Secondo DDD, la traduzione non dovrebbe avvenire all'interno di un team (che include esperti di dominio, anche se presenti solo per delega di un documento di specifica), ma solo tra team (ulteriore lettura: "Domain Driven Design" di Eric Evans, in particolare i capitoli su Ubiquitous Language e design strategico).
Cioè, se i tuoi esperti aziendali (o il tuo documento di specifica) parlano olandese, usano la loro terminologia (olandese) quando esprimono preoccupazioni commerciali nel codice sorgente. Non tradurre inutilmente in inglese, perché ciò crea un impedimento artificiale alla comunicazione tra esperti di business e programmatori, che richiede tempo e può (attraverso una traduzione ambigua o errata) causare bug.
Se, al contrario, i tuoi esperti in affari possono parlare della loro attività sia in inglese che in olandese, ti trovi nella fortunata situazione di poter scegliere la lingua onnipresente del progetto e ci sono validi motivi per preferire l'inglese (come "comprensibile a livello internazionale e è più probabile che vengano utilizzati dagli standard "), ma farlo non significa che i programmatori dovrebbero tradurre ciò di cui parlano gli uomini d'affari. Invece, gli uomini d'affari dovrebbero cambiare lingua.
Avere un linguaggio onnipresente è particolarmente importante se i requisiti sono complessi e devono essere implementati con precisione, se stai semplicemente facendo CRUD la lingua che usi internamente è meno importante.
Aneddoto personale: ero in un progetto in cui abbiamo esposto alcuni servizi aziendali come endpoint SOAP. L'attività è stata interamente specificata in tedesco, ed è improbabile che possa essere riutilizzata come in inglese, poiché si trattava di questioni legali specifiche di una determinata giurisdizione. Tuttavia, alcuni architetti delle torri d'avorio hanno richiesto che l'interfaccia SOAP fosse inglese per promuovere il riutilizzo futuro. Questa traduzione è avvenuta ad hoc e con uno scarso coordinamento tra gli sviluppatori, ma solo un glossario condiviso, con lo stesso termine commerciale con diversi nomi nel contratto di servizio Web e alcuni termini commerciali con lo stesso nome nel contratto di servizio Web. Oh, e ovviamente alcuni nomi erano usati su entrambi i lati della divisione, ma con significati diversi!
Se si sceglie di tradurre comunque, si prega di standardizzare la traduzione in un glossario, aggiungere la conformità con quel glossario alla propria definizione di fatto e verificarlo nelle proprie recensioni. Non essere negligente come noi.