Vereinbarte Konventionen, die Reibung reduzieren und kollektives Eigentum ermöglichen.
Coding Standards sind Teamvereinbarungen darüber, wie Code geschrieben werden soll:
Standards ermöglichen kollektives Eigentum. Wenn Code überall gleich aussieht, kann jeder jeden Code lesen. Es gibt keine „Übersetzung" zwischen Bobs Stil und Alices Stil.
Standards reduzieren auch Reibung im Code-Review. Anstatt über Formatierung zu diskutieren, besprecht ihr Logik und Design. Das Bikeshedding entfällt.
Ohne Standards: Jede Datei fühlt sich anders an. Der Wechsel zwischen Modulen erfordert mentales Kontextwechseln. Code-Review wird zum Stilkrieg.
Mit Standards: Die Codebasis fühlt sich einheitlich an. Das Lesen von unbekanntem Code ist einfacher. Reviews konzentrieren sich auf das Wesentliche.
Der spezifische Standard ist weniger wichtig als überhaupt einen Standard zu haben. Wählt etwas Vernünftiges und bleibt dabei.
Nicht alle Konventionen sind gleich. Unterscheidet zwischen:
Semantische Standards: Beeinflussen Codeverhalten oder Wartbarkeit
Stilistische Standards: Beeinflussen nur das Erscheinungsbild
Semantische Standards verdienen Diskussion. Wie das Team mit Fehlern umgeht, ist eine bedeutsame Entscheidung mit echten Konsequenzen.
Stilistische Standards sollten automatisiert werden. Nutzt Prettier, Black, gofmt – Tools, die Code automatisch formatieren. Verschwendet keine menschliche Zeit mit Tabs vs. Leerzeichen.
Das Ziel ist, Reibung zu beseitigen, nicht ein platonisches Ideal von Code-Stil zu erreichen.
Moderne Tools können die meisten Standards automatisch durchsetzen:
Formatierer: Prettier (JavaScript), Black (Python), gofmt (Go), rustfmt (Rust)
Linter: ESLint, Pylint, Clippy, RuboCop
Type Checker: TypeScript, mypy, Flow
Pre-Commit-Hooks: Husky, pre-commit
Einmal konfigurieren, für immer durchsetzen. Verlasst euch nicht auf menschliche Disziplin – automatisiert es.
Das Team nutzt Prettier mit einer gemeinsamen Konfiguration. Jeder Commit löst Formatierung aus. Code-Review erwähnt nie Formatierung – es konzentriert sich nur auf Logik und Design.
Das Team hat einen 50-seitigen Style Guide. Reviewer verbringen die Hälfte ihrer Zeit damit, auf Stilverstöße hinzuweisen. Entwickler ärgern sich über die Kleinlichkeit. Neue Teammitglieder haben Schwierigkeiten, all die Regeln zu lernen.
Standards können starke Meinungen auslösen. Vermeidet endlose Debatten:
Beginnt mit bestehenden Konventionen. Wenn die Sprache oder das Framework einen Standardstil hat (Go, Rust), nutzt ihn einfach. Erfindet nichts neu.
Nutzt Industriestandards. Beliebte Linter-/Formatierer-Konfigurationen (Airbnb ESLint, Google Style Guide) sind kampferprobt.
Entscheidet schnell, passt später an. Wählt etwas Vernünftiges. Wenn es sich als problematisch erweist, ändert es. Blockiert den Fortschritt nicht, während ihr auf den perfekten Standard wartet.
Macht es demokratisch, aber entscheidungsfreudig. Lasst das Team über kontroverse Themen abstimmen. Die Mehrheit gewinnt. Die Minderheit akzeptiert die Entscheidung.
Erinnert euch an das Ziel. Standards existieren, um Reibung zu reduzieren, nicht um Präferenzen auszudrücken. Wenn eine Diskussion zu lange dauert, ist jede vernünftige Wahl in Ordnung.
Nicht vorzeitig optimieren
Eine Woche damit zu verbringen, über Semikolons zu debattieren, ist keine gute Zeitnutzung. Wählt einen Formatierer und macht weiter.
Standards sollten dokumentiert werden – aber haltet sie lebendig:
Was dokumentiert werden sollte:
Wo dokumentiert werden sollte:
Haltet es aktuell. Veraltete Dokumentation ist schlimmer als keine Dokumentation. Wenn ihr einen Standard ändert, aktualisiert die Dokumentation.
Macht es auffindbar. Neue Teammitglieder sollten die Standards leicht finden. Vergrabt sie nicht in einem Wiki-Labyrinth.
Die beste Dokumentation ist der Code selbst. Wenn eure Standards automatisch durchgesetzt werden, demonstriert der Code, was akzeptabel ist.