„Architecture.md (2021)“ – technische Spezifikation
(matklad.github.io)Empfehlung zum Verfassen von ARCHITECTURE.md
- Open-Source-Projekt-Maintainern wird nachdrücklich empfohlen, neben
READMEundCONTRIBUTINGeinARCHITECTURE-Dokument hinzuzufügen. - Dieses Dokument beschreibt die High-Level-Architektur des Projekts und sollte kurz gehalten werden, da es von wiederkehrenden Beitragenden gelesen werden soll.
- Ein
ARCHITECTURE-Dokument sollte nur Inhalte enthalten, die sich nicht häufig ändern; statt zu versuchen, es mit dem Code zu synchronisieren, ist es besser, es einige Male pro Jahr zu überprüfen.
Zweck und Bedeutung des Dokuments
- Das Wissen über die physische Architektur eines Projekts ist der größte Unterschied zwischen gewöhnlichen Beitragenden und Kernentwicklern.
- Wenn man mit einem Projekt nicht vertraut ist, dauert das Schreiben eines Patches doppelt so lange, und herauszufinden, an welcher Stelle der Code geändert werden muss, kostet zehnmal so viel Zeit.
- Eine
ARCHITECTURE-Datei ist ein wirksamer Weg, diese Lücke zu schließen, und bietet zugleich die Gelegenheit, über die Struktur des Projekts zu reflektieren.
Aufbau des Dokuments
- Es sollte mit einem Überblick aus einer neuen Perspektive auf das Problem beginnen und dann eine detaillierte Code-Map liefern, die die Beziehungen zwischen den Modulen erklärt.
- Wichtige Dateien, Module und Typen sollten genannt werden; statt direkt zu verlinken, sollte dazu ermutigt werden, nach Namen zu suchen, damit kein Pflegeaufwand entsteht.
- Architektonische Invarianten sollten ausdrücklich benannt und Grenzen zwischen den Schichten hervorgehoben werden.
Architektonische Invarianten und Grenzen
- Wichtige Invarianten werden oft durch die Abwesenheit von etwas ausgedrückt, und das lässt sich allein durch das Lesen des Codes nur schwer erkennen.
- Grenzen zwischen Schichten oder Systemen enthalten implizit Informationen über die Implementierung des Systems und schränken alle möglichen Implementierungen ein.
Querschnittsthemen
- Nach Fertigstellung der Code-Map sollte ein eigener Abschnitt zu Querschnittsthemen hinzugefügt werden.
- Ein gutes Beispiel für ein
ARCHITECTURE-Dokument ist die architecture.md von rust-analyzer.
GN⁺-Meinung:
- Ein
ARCHITECTURE-Dokument hilft beim Verständnis des Projekts und spielt eine wichtige Rolle dabei, dass neue Beitragende sich schnell in die Codebasis einarbeiten. - Dieses Dokument macht die Struktur des Projekts klarer und hebt wichtige Architekturprinzipien und Grenzen hervor, damit Entwickler das System besser verstehen.
- Die Einführung von
ARCHITECTURE-Dokumenten in der Open-Source-Community kann zu nachhaltigem Wachstum und besserer Wartbarkeit von Projekten beitragen und ist ein sehr nützlicher und interessanter Ansatz für Entwickler.
1 Kommentare
Hacker-News-Kommentare
ARCHITECTURE.md-Dateien.ARCHITECTURE.md/docs-Ordner eines Git-Repositories.