Ich weiß, dass es hier bereits einige Fragen gibt, die in engem Zusammenhang mit diesem Thema stehen, aber keine von ihnen geht von Ubiquitous Language aus, und ich denke, das rechtfertigt diese Frage.
Für diejenigen, die nicht wissen: Ubiquitous Language ist das Konzept der Definition einer (sowohl gesprochenen als auch geschriebenen) Sprache, die von Entwicklern und Domain-Experten gleichermaßen verwendet wird, um Inkonsistenzen und Missverständnisse aufgrund von Übersetzungsproblemen und Missverständnissen zu vermeiden. Dieselbe Terminologie wird im Code angezeigt, Gespräche zwischen Teammitgliedern, Funktionsspezifikationen und so weiter.
Ich habe mich also gefragt, wie ich mit Ubiquitous Language in nicht-englischen Domänen umgehen soll.
Persönlich bevorzuge ich es, Programmcode vollständig in Englisch zu schreiben, einschließlich Kommentaren, aber natürlich ohne Konstanten und Ressourcen.
In einer nicht-englischen Domäne bin ich jedoch gezwungen, eine Entscheidung zu treffen, um:
- Schreiben Sie Code, der die Ubiquitous Language widerspiegelt, in der natürlichen Sprache der Domäne.
- Übersetzen Sie die allgegenwärtige Sprache ins Englische und unterbrechen Sie die Kommunikation in der natürlichen Sprache der Domain.
- Definieren Sie eine Tabelle, die definiert, wie die Ubiquitous Language in Englisch übersetzt wird.
Hier sind einige meiner Gedanken zu diesen Optionen:
1) Ich habe eine starke Abneigung gegen gemischtsprachigen Code, der unter Verwendung von Typ- / Element- / Variablennamen usw. codiert, die nicht englisch sind. Die meisten Programmiersprachen "atmen" weitgehend Englisch und die meiste Fachliteratur, Entwurfsmusternamen usw. sind auch in Englisch. Aus diesem Grund gibt es in den meisten Fällen keine Möglichkeit, Code vollständig in einer anderen Sprache als Englisch zu schreiben, sodass Sie ohnehin gemischte Sprachen haben.
2) Dies wird die Domain-Experten dazu zwingen, in der englischen Entsprechung des UL zu denken und zu sprechen, was für sie wahrscheinlich nicht selbstverständlich ist und daher die Kommunikation erheblich behindert.
3) In diesem Fall kommunizieren die Entwickler mit den Domain-Experten in ihrer Muttersprache, während die Entwickler auf Englisch miteinander kommunizieren. Vor allem schreiben sie Code mit der englischen Übersetzung des UL.
Ich bin sicher, dass ich mich nicht für die erste Option entscheiden möchte, und ich denke, Option 3 ist viel besser als Option 2. Was denken Sie? Vermisse ich andere Optionen?
AKTUALISIEREN
Heute, ungefähr ein Jahr später, nachdem ich mich täglich mit diesem Thema befasst habe, muss ich sagen, dass Option 3 für mich ziemlich gut funktioniert hat.
Es war nicht so langweilig, wie ich ursprünglich befürchtet hatte, und das Übersetzen in Echtzeit, während ich mit dem Kunden sprach, war auch kein Problem.
Aufgrund meiner Erfahrung habe ich auch die folgenden Vorteile für richtig befunden.
- Durch die Übersetzung des UL widmen Sie sich mehr der Definition des UL und sogar der Domäne selbst, insbesondere dann, wenn Sie nicht wissen, wie ein Begriff übersetzt werden soll, und Wörterbücher usw. durchsehen müssen. Dies hat mich sogar veranlasst, die Modellierungsentscheidungen für Domänen neu zu überdenken ein paar Male.
- Es hilft Ihnen dabei, Ihre Kenntnisse der englischen Sprache zu vertiefen.
- Offensichtlich ist Ihr Code viel angenehmer anzusehen, als eine irrsinnige Obszönität zu sein.