Zum Inhalt springen
≈ 1 minNeuCode-Qualität

Software-Engineering Best Practices

Bewährte Prinzipien und Gewohnheiten, die Code lesbar, testbar und änderbar halten – unabhängig von Sprache und Framework.

In 30 Sekunden

  1. 01

    Prinzipien wie SOLID, DRY, KISS und YAGNI verhindern unnötige Komplexität.

  2. 02

    Tests, Code Reviews und Versionierung machen Änderungen sicher und nachvollziehbar.

  3. 03

    Technische Schulden sind normal – sie müssen nur sichtbar sein und regelmäßig abgebaut werden.

Die Prinzipien

SOLID

Fünf Regeln für objektorientiertes Design – allen voran Single Responsibility: eine Klasse, ein Grund zur Änderung.

DRY

Don’t Repeat Yourself – jedes Wissen hat genau eine Quelle. Aber: Zwei ähnliche Zeilen sind noch kein Duplikat.

KISS

Keep It Simple – die einfachste Lösung, die funktioniert. Clever ist selten gut wartbar.

YAGNI

You Aren’t Gonna Need It – nichts auf Vorrat bauen. Später erweitern ist billiger als Unnötiges pflegen.

Sprechende Namen

days_until_due statt d. Ein guter Name spart einen Kommentar.

Kleine Funktionen

Eine Funktion, eine Aufgabe, eine Abstraktionsebene. Passt sie nicht auf den Bildschirm, aufteilen.

Die Gewohnheiten

  1. 01

    Testen nach der Pyramide

    viele Unit · wenige E2E

    Viele schnelle Unit-Tests als Basis, weniger Integrationstests, nur wenige langsame End-to-End-Tests.

  2. 02

    Code Review

    Pull Request

    Vier Augen finden Fehler, verteilen Wissen und halten den Stil einheitlich. Kleine PRs werden besser reviewt.

  3. 03

    Versionieren mit Bedeutung

    feat: · fix: · 2.1.0

    Conventional Commits beschreiben jede Änderung, SemVer (MAJOR.MINOR.PATCH) signalisiert Breaking Changes.

  4. 04

    Automatisieren

    CI

    Formatter, Linter und Tests laufen bei jedem Push – Diskussionen über Einrückung entfallen.

  5. 05

    Dokumentieren, was nicht im Code steht

    README · ADR

    Wie starte ich das Projekt? Warum wurde X entschieden? Das gehört in README und Architecture Decision Records.

  6. 06

    Technische Schulden sichtbar machen

    Backlog

    Abkürzungen sind okay, wenn sie bewusst sind – als Ticket festhalten und regelmäßig abbauen.

Nicht so

def calc(d, f=False):
    # berechnet den Preis
    return d * 1.19 if f else d

So

VAT_RATE = Decimal("1.19")

def gross_price(net: Decimal, include_vat: bool) -> Decimal:
    return net * VAT_RATE if include_vat else net

Vertiefung pro Thema

Merksatz

„Code wird viel öfter gelesen als geschrieben – optimiere für den nächsten Menschen, der ihn verstehen muss.“

Selbsttest

Erst selbst überlegen, dann aufklappen.

01Was besagt YAGNI?

„You Aren't Gonna Need It“ – baue keine Funktionalität auf Vorrat, sondern erst, wenn sie wirklich gebraucht wird.

02Eine Bibliothek geht von 2.3.1 auf 3.0.0. Was signalisiert das nach SemVer?

Eine inkompatible Änderung (Breaking Change) – vor dem Update die Release Notes lesen.

Weiter in Grundlagen

Best Practices für Python