Frage

C# und Java erlauben nahezu jedes Zeichen in Klassennamen, Methodennamen, lokalen Variablen usw.Ist die Verwendung von Nicht-ASCII-Zeichen eine schlechte Praxis, die die Grenzen schlechter Editoren und Analysetools auf die Probe stellt und das Lesen für einige Leute erschwert, oder ist amerikanische Arroganz das einzige Argument dagegen?

War es hilfreich?

Lösung

Ich würde auf Englisch halten, einfach weil Sie in der Regel nie wissen, wer an diesem Code funktionieren, und da einige Tools von Drittanbietern in dem Build / Test / Bugtracking Fortschritt verwendet, um Probleme haben können. Typing äöüß auf einer Nicht-Deutsche Tastatur ist einfach ein PITA, und ich glaube einfach, dass jemand in der Software-Entwicklung beteiligt ist, soll Englisch sprechen, aber vielleicht ist das nur meine Arroganz als nicht-native-Englisch-Sprecher.

Was Sie „amerikanische Arroganz“ nennen, ist nicht, ob Ihr Programm international Variablennamen verwendet, ist es, wenn Ihr Programm denkt „Währung“ und „Währung“ sind die gleichen Worte.

Andere Tipps

Ich würde sagen, es hängt ganz von der auf der Code-Basis funktioniert.

Wenn Sie eine kleine Gruppe von Entwicklern haben, die alle eine gemeinsame Sprache und Sie nicht immer planen, um alle, die die Sprache nicht sprechen die Arbeit an der Code dann gehen Sie vor und verwenden, was auch immer Zeichen, die Sie wollen.

Wenn Sie Menschen unterschiedlicher Kulturen und Sprachen haben, auf dem Code arbeiten, dann ist es wahrscheinlich am besten mit Englisch zu halten, da es für fast jeden in der Welt der gemeinsame Nenner ist.

Wenn Ihr Unternehmen kein Englisch spricht und Sie glauben, dass Domain Driven Design etwas Besonderes ist, dann gibt es noch einen weiteren Aspekt:Wie können wir als Entwickler ohne Übersetzungsaufwand dieselbe Domänensprache wie unser Unternehmen verwenden?

Dabei handelt es sich nicht nur um Übersetzungen zwischen Sprachen, beispielsweise Englisch und Norwegisch, sondern auch zwischen verschiedenen Wörtern.Wir sollten für unsere Unternehmensklassen und Dienstleistungen genau die gleichen Wörter wie unser Unternehmen verwenden.

Ich habe es einfacher gefunden, einfach nachzugeben und meine Muttersprache zu verwenden.Da mein Code nun dieselben Wörter verwendet, ist es einfacher, mit meinen Fachexperten ins Gespräch zu kommen.Und nach einer Weile gewöhnt man sich daran, genauso wie man sich daran gewöhnt hat, ohne ungarische Notation zu programmieren.

Ich habe mal in einem Entwicklungsteam arbeiten, die gerne ihre Esel mit jedem Namens abgewischt (und was das betrifft jede andere Codierung) Konventionen. Ob Sie es glauben oder nicht, mit ä und O im Code zu bewältigen haben, war ein Faktor von mir resignieren. Obwohl ich Finnish bin, ziehe ich Code mit US-Tastatur-Einstellungen zu schreiben, weil geschweiften und eckigen Klammern ein Schmerz sind in einer finnischen Tastatur (versuchen Sie rechts alt und 7 und 0 für curlies).

schreiben

Also ich sage mit den ASCII-Zeichen halten.

Hier ist ein Beispiel von wo ich verwendet habe, nicht-ASCII-Bezeichner, weil ich es besser lesbar als Ersatz der griechischen Buchstaben mit ihren englischen Namen gefunden. Auch wenn ich θ oder φ auf meiner Tastatur nicht (ich verließ sich auf Copy-and-Paste).

Diese sind jedoch alle lokalen Variablen. Ich würde halten Nicht-ASCII-Identifikatoren aus öffentlichen Schnittstellen.

Es hängt davon ab:

  • Hat Ihr Team zu bestehenden Standards entspricht, die Sie mit ASCII benötigen?
  • Ist Ihr Code immer feasibly wiederverwendet oder von jemandem gelesen gehen werden, die nicht Ihre Muttersprache sprechen?
  • Haben Sie ein Szenario vorstellen, wo Sie Hilfe benötigen, um Online zu stellen und wird daher nicht in der Lage sein, Ihre Codebeispiel copy-paste in wie sie ist?
  • Sind Sie sicher, dass Ihre gesamte Suite von Tools-Codierung unterstützen?

Wenn Sie ‚Ja‘ beantwortet, um eine der oben genannten, bleiben nur ASCII. Wenn nicht, gehen Sie nach vorn auf eigene Gefahr.

Wenn Sie vorbei an die anderen Voraussetzungen dann haben ein extra (IMHO wichtiger) ein. - Wie schwierig ist das Symbol eingeben

Auf meiner regelmäßigen en-us-Tastatur, der einzige Weg, den ich kenne, die Buchstaben C zu geben ist alt zu halten, und traf 0227 auf dem Ziffernblock oder kopieren und einfügen.

Dies würde schnell eine riesige große Hürde auf dem Weg von der Eingabe sein. Sie wollen nicht Ihre mit trivialen Sachen wie diese Codierung verlangsamen, wenn Sie nicht dazu gezwungen werden. Internationale Tastaturen können diese lindern, aber dann, was passiert, wenn Sie auf Ihrem Laptop-Code haben, die nicht eine internationale Tastatur hat, etc?

Ein Teil des Problems ist, dass die Java / C # Sprache und ihre Bibliotheken auf englische Wörter wie if und toString() basieren. Ich persönlich würde nicht zwischen nicht-englischer Sprache und Englisch wechseln möge, während Code zu lesen.

Allerdings, wenn Ihre Datenbank, UI, Business-Logik (einschließlich Metaphern) ist bereits in einiger nicht-englischen Sprache gibt es keine Notwendigkeit, alle Methodennamen und Variablen ins Englische.

übersetzen

würde ich auf ASCII-Zeichen bleiben, weil, wenn jemand in Ihrem Entwicklungsteam ein SDK verwendet, die nur ASCII unterstützt oder Sie wollten Ihren Code Open Source machen, könnte eine Menge Probleme auftreten. Ich persönlich würde es nicht tun, auch wenn Sie nicht zu bringen jemand planen, die die Sprache über das Projekt sprechen in, weil Sie ein Geschäft laufen und es scheint mir, dass man ein Geschäft laufen würde sein Geschäft erweitern möchte , die in der heutigen Zeit bedeutet, die nationalen Grenzen hinausgeht. Meine Meinung ist, dass Englisch die Sprache der Welt ist, und selbst wenn Sie Ihre Variablen in einer anderen Sprache nennen, gibt es wenig zu keinem Zeitpunkt keine Nicht-ASCII-Zeichen in der Programmierung zu verwenden. Lassen Sie es auf die Sprache auf, mit ihm zu beschäftigen, wenn Sie Daten der Handhabung UTF8 ist: mein iPhone-Programm (die Tonnen von Benutzerdaten gehen in zwischen dem Telefon und Server beinhaltet) hat die volle UTF8-Unterstützung, hat aber keine UTF8 im Quellcode . Es scheint nur so zu öffnen, eine große Dose Würmer für fast keinen Nutzen.

Es gibt einen weiteren hazzard zu Nicht-ASCII-Zeichen verwenden, obwohl es vermutlich nur in obskuren Fällen beißen. Die erlaubten Zeichen sind definiert in Bezug auf die Methoden Charakter. isJavaIdentifierStart (int) und java.lang.Character .

Da die Zeicheneigenschaften leicht von einer Unicode-Version zu ändern, um zum nächsten, ist es möglich (aber wahrscheinlich sehr unwahrscheinlich) Sie konnten Kennungen haben, die in einer Version von Java, aber nicht in den nächsten gültig sind.

Wie bereits erwähnt, es sei denn, Methodennamen meist die Sprache entsprechen, ist es ein bisschen komisch ist ständig Sprachen wechseln beim Lesen.

Für die skandinavischen Sprachen und Deutsch, die ich sprechen kann und somit sprechen für, würde ich zumindest empfehlen Standard-Substitutionen verwenden, dh.

ä / æ -> ae, ö / ø -> oe, A -> aa, ü -> ue

usw. nur für den Fall als andere finden es schwierig, die ursprünglichen Buchstaben ohne Tastatur / keymap Änderungen zu geben. Die Umschaltung zwischen mehr als 2 keymaps zu geben wäre effizient schmerzhaft sein in meiner Erfahrung glaube, wenn man plötzlich hatte mit einem Code-Basis zu arbeiten, wo die Entwickler eine dritte Sprache verwendet (zum Beispiel einschließlich der Französisch C) und habe das nicht .. tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top