Dokumentation älterer Codebasen
Ich würde wärmstens empfehlen, die Scout-Regel mit älteren Codebasen zu befolgen. Der Versuch, ein Legacy-Projekt unabhängig von der Bearbeitung zu dokumentieren, wird niemals stattfinden.
In-Code-Dokumentation
Das Wichtigste ist, die Dokumentationsfunktionen in der von Ihnen gewählten Entwicklungsumgebung zu verwenden, dh pydoc für Python, Javadoc in Java oder XML-Kommentare in C #. Dies erleichtert das Schreiben der Dokumentation gleichzeitig mit dem Schreiben des Codes.
Wenn Sie darauf vertrauen, dass Sie später zurückkehren und die Dinge dokumentieren, kommen Sie vielleicht nicht daran vorbei, aber wenn Sie dies tun, während Sie den Code schreiben, ist das, was dokumentiert werden muss, in Ihrem Kopf frisch. C # bietet sogar die Möglichkeit, eine Kompilierungswarnung auszugeben, wenn die XML-Dokumentation unvollständig oder mit dem tatsächlichen Code nicht konsistent ist.
Tests als Dokumentation
Ein weiterer wichtiger Aspekt ist eine gute Integration und Unit-Tests.
Oft konzentriert sich die Dokumentation darauf, was Klassen und Methoden für sich tun, und überspringt, wie sie zur Lösung Ihres Problems zusammen verwendet werden. Tests stellen diese häufig in einen Zusammenhang, indem sie zeigen, wie sie miteinander interagieren.
In ähnlicher Weise weisen Unit-Tests häufig explizit auf externe Abhängigkeiten hin, durch die die Dinge nachgebildet werden müssen.
Ich finde auch, dass ich mit testgetriebener Entwicklung Software schreibe, die einfacher zu bedienen ist, weil ich sie von Anfang an benutze. Mit einem guten Test-Framework ist es oft dasselbe, Code einfacher zu testen und benutzerfreundlich zu machen.
Dokumentation auf höherer Ebene
Schließlich müssen Sie noch die Systemebene und die Architekturdokumentation berücksichtigen. Viele befürworten das Schreiben einer solchen Dokumentation in einem Wiki oder die Verwendung von Word oder einem anderen Textverarbeitungsprogramm, aber für mich ist der beste Ort für eine solche Dokumentation neben dem Code auch ein Nur-Text-Format, das für das Versionskontrollsystem geeignet ist.
Genau wie bei der In-Code-Dokumentation ist es wahrscheinlicher, dass Sie Ihre Dokumentation auf höherer Ebene in Ihrem Code-Repository auf dem neuesten Stand halten. Sie haben auch den Vorteil, dass Sie beim Herausziehen der Version XY des Codes auch die Version XY der Dokumentation erhalten. Wenn Sie ein VCS-freundliches Format verwenden, bedeutet dies außerdem, dass es einfach ist, genau wie Ihr Code zu verzweigen, zu unterscheiden und zusammenzuführen.
Ich mag erstens , da es einfach ist, sowohl HTML-Seiten als auch PDF-Dokumente daraus zu erstellen, und viel freundlicher als LaTeX ist , aber auch LaTeX-mathematische Ausdrücke enthalten kann, wenn Sie sie benötigen.