So che ci sono già alcune domande che sono strettamente correlate a questo argomento, ma nessuna di esse prende come punto di partenza il linguaggio Ubiquitous , quindi penso che giustifichi questa domanda.
Per chi non lo sapesse: Ubiquitous Language è il concetto di definizione di una lingua (sia parlata che scritta) che viene ugualmente utilizzata da sviluppatori ed esperti di dominio per evitare incoerenze e incomunicazioni dovute a problemi di traduzione e incomprensioni. Vedrai la stessa terminologia mostrata nel codice, conversazioni tra qualsiasi membro del team, specifiche funzionali e quant'altro.
Quindi, quello che mi chiedevo è come gestire la lingua ubiquitaria in domini non inglesi.
Personalmente, preferisco fortemente scrivere completamente il codice di programmazione in inglese, compresi i commenti ma ovviamente escludendo costanti e risorse.
Tuttavia, in un dominio non inglese, sono costretto a prendere una decisione in merito a:
- Scrivi il codice che riflette la lingua Ubiquitous nel linguaggio naturale del dominio.
- Traduci la lingua Ubiquitous in inglese e smetti di comunicare nella lingua naturale del dominio.
- Definire una tabella che definisce come la lingua Ubiquitous si traduce in inglese.
Ecco alcuni dei miei pensieri basati su queste opzioni:
1) Ho una forte avversione per il codice in lingua mista, ovvero la codifica utilizzando nomi di tipo / membro / variabile ecc. Che non sono inglese. La maggior parte dei linguaggi di programmazione 'respira' l'inglese in larga misura e la maggior parte della letteratura tecnica, i nomi dei modelli di progettazione ecc. Sono anche in inglese. Pertanto, nella maggior parte dei casi non c'è proprio modo di scrivere il codice interamente in una lingua non inglese, quindi si finisce comunque con lingue miste.
2) Questo costringerà gli esperti del dominio a iniziare a pensare e parlare nell'equivalente inglese dell'UL, qualcosa che probabilmente non arriverà naturalmente a loro e quindi ostacola in modo significativo la comunicazione.
3) In questo caso, gli sviluppatori comunicano con gli esperti di dominio nella loro lingua madre mentre gli sviluppatori comunicano tra loro in inglese e, soprattutto, scrivono codice usando la traduzione inglese dell'UL.
Sono sicuro di non voler scegliere la prima opzione e penso che l'opzione 3 sia molto meglio dell'opzione 2. Cosa ne pensi? Mi mancano altre opzioni?
AGGIORNARE
Oggi, circa un anno dopo, dopo aver affrontato questo problema quotidianamente, devo dire che l'opzione 3 ha funzionato abbastanza bene per me.
Non è stato nemmeno noioso come inizialmente temevo e tradurre in tempo reale mentre parlavo con il cliente non era un problema.
Ho anche riscontrato che i seguenti vantaggi sono veri, in base alla mia esperienza.
- La traduzione dell'UL ti fa prestare maggiore attenzione alla definizione dell'UL e persino del dominio stesso, specialmente quando non sai come tradurre un termine e devi iniziare a cercare dizionari ecc. Questo mi ha persino portato a riconsiderare le decisioni di modellizzazione del dominio alcune volte.
- Ti aiuta a rendere più profonda la tua conoscenza della lingua inglese.
- Ovviamente, il tuo codice è molto più piacevole da guardare invece di essere un'oscenità da capogiro.