So che ci sono già alcune domande che sono strettamente correlate a questo argomento ma nessuno di loro prende Lingua Ubiquitous come Punto quindi penso che giustifichi questa domanda.
Per chi non lo sapesse: Ubiquitous Language è il concetto di definizione di un linguaggio (sia parlato che scritto) che viene utilizzato ugualmente tra sviluppatori e esperti di dominio per evitare incoerenze e problemi di comunicazione dovuti a problemi di traduzione e incomprensioni. Vedrai la stessa terminologia apparire nel codice, conversazioni tra qualsiasi membro del team, specifiche funzionali e quant'altro.
Quindi, quello che mi stavo chiedendo è come trattare con Ubiquitous Language in domini non inglesi.
Personalmente, sono strongmente favorevole alla scrittura del codice di programmazione in inglese completamente, compresi i commenti ma naturalmente escludendo costanti e risorse.
Tuttavia, in un dominio non inglese, sono costretto a prendere una decisione a:
- Scrivi un codice che rifletta l'Ubiquitous Language nella lingua naturale del dominio.
- Traduci la lingua onnipresente in inglese e smetti di comunicare nel linguaggio naturale del dominio.
- Definisci una tabella che definisce il modo in cui l'Ubiquitous Language si traduce in inglese.
Ecco alcuni dei miei pensieri basati su queste opzioni:
1) Ho una strong avversione nei confronti del codice a linguaggio misto, cioè la codifica usando nomi di tipo / membri / variabili ecc. che non sono inglesi. 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'è modo di scrivere codice interamente in una lingua non inglese, quindi si finisce comunque con lingue miste.
2) Questo costringerà gli esperti di dominio a iniziare a pensare e a parlare nell'equivalente inglese dell'UL, qualcosa che probabilmente non verrà loro naturale e quindi ostacola significativamente la comunicazione.
3) In questo caso, gli sviluppatori comunicano con gli esperti del dominio nella loro lingua nativa mentre gli sviluppatori comunicano tra loro in inglese e, soprattutto, scrivono il codice usando la traduzione inglese dell'UL.
Sono sicuro che non voglio andare per la prima opzione e penso che l'opzione 3 sia molto meglio dell'opzione 2. Cosa ne pensi? Mi mancano altre opzioni?
Aggiorna
Oggi, circa un anno dopo, avendo affrontato questo problema su base giornaliera, devo dire che l'opzione 3 ha funzionato abbastanza bene per me.
Non era così noioso come inizialmente temevo e la traduzione in tempo reale mentre parlavo con il cliente non era un problema.
Ho trovato anche i seguenti vantaggi, in base alla mia esperienza.
- La traduzione dell'UL ti fa prestare maggiore attenzione alla definizione dell'UL e persino del dominio stesso, soprattutto quando non sai come tradurre un termine e devi iniziare a cercare tra i dizionari, ecc. Questo mi ha persino indotto a riconsiderare decisioni sulla modellazione 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.