Hi,
Wenn Ihr Funktionen schreibt / Variablen definiert, egal welche Sprache, benutzt Ihr deutsche oder englische Bezeichnungen dafür?
Martins Antwort kann ich hier eigentlich nichts hinzufügen. Seine Anmerkung "Nicht nur bei Programmcode" möchte ich aber noch mit "sondern auch bei Kommentaren" konkretisieren. Immer gilt: Wenn es Coding-Guidelines gibt, ist jede Vorliebe hinfällig - es gelten die Guidelines. Wenn ich aber selbst welche festlegen kann:
- Alles auf Englisch.
- lowerCamelCase für Bezeichner aller Art, bis auf
- UpperCamelCase bei Klassen (nicht jedoch damit instanziierten Objekten).
- Um Gottfrieds Willen, auf gar gar gar keinen Fall irgendwelche Prefixes, die Typen oder sonstwas bezeichnen! Prefixes sind Namespaces, sonst nichts.
- Bezeichner müssen sprechend sein, ihre Bedeutung muss für Menschen mindestens in dem Kontext klar werden können, in dem sie gelten.
- Kommentare haben den Zweck, einem Verwender des Codes (egal welche Art der Verwendung) diejenigen Informationen zu geben, die er benötigt, um seine Verwendung durchführen zu können. Insbesondere bedeutet das, dass Kommentare *nicht* dazu dienen, einen Code noch mal in eine andere Sprache zu übersetzen.
- Blöcke werden
- mit einer öffnenden geschweiften Klammer *in der selben Zeile[1]* begonnen,
- mit einer schließenden geschweiften Klammer in einer neuen Zeile und genau der Spalte beendet, in der der öffnende Code beginnt,
- und mit exakt vier Leerzeichen eingerückt. Nicht zwei, nicht drei, nicht fünf[2], nicht Tabulatoren. Vier Leerzeichen. Ausnahmen sind definierbar auf zwei Leerzeichen, wenn übermäßig viele Schachtelungsebenen[3] zu erwarten sind - und mindestens(!) dokumentweit einzuhalten. - "else" und ähnliche Konstrukte, die zwei Blöcke abtrennen, beginnen *keine* neue Zeile, sofern der Block mehrzeilig ist; ansonsten schon, unter Beibehaltung der Spalte des zugehörigen "if" (oder was immer es war).
- Funktionsklammern werden ohne Leerzeichen an den Funktionsnamen angefügt.
- Zu Sprachkonstrukten wie "if", "for", "switch", "catch" gehörende Klammern werden mit (mindestens[4]) einem Leerzeichen abgetrennt.
- Konstrukte, die üblicherweise einen Block erzeugen, werden auch dann mit geschweiften Klammern notiert, wenn diese nicht zwingend nötig sind. *Niemals* schreibe "if (...) doSomething();".
- Über obige Regeln hinaus werden Kommas, Leerzeichen, Semikola usw. so gesetzt, wie es natürlichsprachlich üblich ist; unter Berücksichtigung einer übersichtlichen Schreibweise. Bei komplexeren Ausdrücken ist mit Leerzeichen und Umbrüchen ggf. anders umzugehen als bei solchen, die man schnell erfassen kann.
Nun ja, und so weiter. Natürlich sind viele Dinge von der Sprache abhängig (geschweifte Klammern in Python? ;-) ), aber obiges ist mehr oder weniger eine Quintessenz des Allgemeingültigen.
Cheatah
[1] Verdammich noch eins! ;-)
[2] Siehe Monty Python: "Die fünf scheidet völlig aus."
[3] Die Schachtelungsebenen handelsüblich komplexer HTML-Dokumente reichen nicht aus für eine solche Regel. In der Praxis heißt das: Zwei Leerzeichen als Einrückung kommen eigentlich nie vor.
[4] Bei einzeiligen Blöcken können Spalten erzeugt werden, beispielsweise:
if (...) { ... }
else if (...) { ... }
else { ... }
X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes