| docs | ||
| .gitattributes | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
Software-Entwicklung
Eine deutschsprachige Dokumentation zum Handwerk der Softwareentwicklung — zu dem, was gleich bleibt, wenn man die Programmiersprache wechselt. Wie aus einer unklaren Anforderung ein Entwurf wird, wie man Quelltext schreibt, den in einem halben Jahr noch jemand versteht, wie geprüft wird, ob er tut, was er soll, wie er zuverlässig auf die Zielsysteme kommt und wie man ihn dort betreibt, absichert und über Jahre am Leben hält.
Der Blickwinkel ist der einer Person, die Software tatsächlich baut und danach auch betreibt — nicht der einer Zertifizierungsstelle und nicht der eines Lehrbuchs. Die Dokumentation beschreibt deshalb nicht nur, welches Verfahren es gibt, sondern auch, woran es in der Praxis scheitert, was es kostet und wann man es besser bleiben lässt.
Konkrete Sprachen und Werkzeuge behandeln eigene Dokumentationen: Python, Rust, TypeScript, Bash, Git, Docker, Podman, Kubernetes, Jenkins, Forgejo. Hier steht, wozu man sie einsetzt und wie sie zusammenspielen — nicht, welche Optionen sie kennen.
Inhaltsübersicht
Die Dokumentation besteht aus zwei Hauptteilen. Das Handbuch erklärt die Zusammenhänge und ist zum Lesen gedacht; die Referenz besteht aus Tabellen und Katalogen und ist zum Nachschlagen gedacht. Wer neu einsteigt, beginnt bei Allgemeines.
Einstieg
Hauptteile
Handbuch
Das Handbuch folgt dem Weg, den eine Anforderung durch die Entwicklung nimmt — von der Frage, was gebaut werden soll, bis zu der, wie das Gebaute Jahre später gepflegt wird.
- Grundlagen — Was Softwareentwicklung ist, Lebenszyklus, Rollen, Paradigmen, Typsysteme, Datenstrukturen, Komplexität, Kodierung, Speicher, Nebenläufigkeit, Übersetzung
- Vorgehen — Vorgehensmodelle, Agilität, Scrum, Kanban, Anforderungen, Schätzung, Zusammenarbeit, Dokumentation
- Entwurf — Entwurfsprinzipien, Kopplung und Kohäsion, Entwurfsmuster, Architekturstile, Domain-Driven Design, Schnittstellen, Datenmodellierung, Fehlerbehandlung, Konfiguration, verteilte Systeme
- Handwerk — Lesbarer Code, Namensgebung, Funktionen, Kommentare, Code Smells, Refactoring, technische Schulden, Debugging, Protokollierung, Werkzeuge, KI-Assistenten
- Qualitätssicherung — Teststufen, Unit-Tests, TDD, Integrationstests, Attrappen, Abdeckung, statische Analyse, Code-Review, Leistungstests
- Versionsverwaltung — Grundlagen, Branching-Strategien, Commits, Pull Requests, Versionsnummern, Änderungsprotokolle
- Bauen und Ausliefern — Bauprozess, Abhängigkeiten, Artefakte, CI, CD, Umgebungen, Container, Migrationen, Veröffentlichungsstrategien, Funktionsschalter
- Betrieb — DevOps, Beobachtbarkeit, Protokolle und Metriken, Alarmierung, Störungen, Wiederanlauf, Kosten
- Sicherheit — Sicher entwickeln, häufige Schwachstellen, Geheimnisse, Lieferkette, Kryptografie, Datenschutz durch Technik
- Praxis — Altlasten, Wartung, Projekte und Teams, Kommunikation, Lernen, Barrierefreiheit, Lizenzen, Ethik
Referenz
Die Referenz listet auf, was man im Alltag nachschlägt.
- Prinzipien und Akronyme
- Entwurfsmuster
- Komplexitätsklassen
- Datenstrukturen
- Programmiersprachen
- Code Smells
- Testarten
- Metriken
- Versionierung
- Commit-Konventionen
- Open-Source-Lizenzen
- Konfigurations- und Datenformate
- Zeichenkodierung
- Zahlenformate
- Normen und Rahmenwerke
- Werkzeuge
- Glossar
- Abkürzungen
- Stichwortverzeichnis