Ansicht einer lebhaften Arbeitsplatzszene mit einer Person, die auf einem gelben Haftzettel schreibt, umgeben von farbenfrohen Schreibwaren wie Filzstiften, Textmarkern, Bleistiften und Haftzetteln.

Was ist Code-Dokumentation?

Code-Dokumentation definiert

Unter Code-Dokumentation versteht man den Prozess der Beschreibung und Erläuterung des Quellcodes eines Softwareprojekts. Sie ist ein integraler Bestandteil der Softwareentwicklung und kann verschiedene Formen annehmen, darunter Codekommentare, geteilte Dateien oder eine zentrale Wissensdatenbank.

Die Code-Dokumentation dient als Landkarte für diejenigen, die mit einer Codebasis interagieren. Sie hilft ihnen zu verstehen, was die einzelnen Codeabschnitte bewirken, wie sie funktionieren, wie man sie verwendet und wie alle Codeabschnitte zusammenpassen. Die Dokumentation von Code hilft Entwicklungsteams bei der besseren Pflege des Quellcodes und dient gleichzeitig als Leitfaden für andere Stakeholder, die den Code verstehen und damit arbeiten müssen, wie z. B. Cybersicherheitsanalysten , Data Scientists , DevOps-Ingenieure, Produkt- und Projektmanager, QA-Ingenieure und technische Redakteure.

Code-Dokumentation versus Dokumentation als Code

Dokumentation als Code oder „Docs as Code“ behandelt die Dokumentation wie Softwarecode. Dieser Ansatz verwaltet die Dokumentation mit denselben Tools wie der Quellcode, einschließlich Versionskontrollsystemen zur Überprüfung und Nachverfolgung von Änderungen, automatisiertes Testen zur Identifizierung von Formatierungs- und Stilfehlern sowie kontinuierliche Integration/kontinuierliche Bereitstellung (CI/CD) für die Aktualisierung und das Bereitstellen der Dokumentation.

Während die Code-Dokumentation die allgemeinere Praxis der Dokumentation von Code umfasst, ist „Docs as Code“ eine spezifische Strategie und ein eher technischer Ansatz zum Schreiben von Dokumentation.

Arten der Code-Dokumentation

Die Struktur der Code-Dokumentation hängt davon ab, wer die Zielgruppe ist und wie sie verwendet werden soll. Hier sind einige gängige Arten von Dokumentation:

  • Low-Level-Dokumentation

  • High-Level-Dokumentation

  • Interne Dokumentation
  • Externe Dokumentation

Low-Level-Dokumentation

Low-Level-Dokumentation bezieht sich normalerweise auf Inline-Kommentare im Code. Als eine der grundlegendsten Methoden der Dokumentationserstellung erläutern diese Annotationen bestimmte Codezeilen oder -blöcke.

def multiply(x, y):
    # Returns the product of two numbers
    return x * y

Dokumentationszeichenfolgen oder Dokumentation sind eine weitere Low-Level-Dokumentationstechnik. Sie erscheinen vor einer Klassen-, Funktions-, Methoden- oder Moduldefinition. Docstrings haben ein strukturiertes Format, das den Zweck, Beispiele für Verwendung, Funktionalität, Parameter und Rückgabewerte deklariert.

def reverse_string(s):
    ‘’’
    Returns the reverse of a string value
    Parameters:
        s (str): The string to be reversed
    Returns:
        rev (str): The string value in reverse
    ‘’’

    rev = ‘’
    x = len(s)

    while x > 0:
        rev += s[x - 1]
        x = x - 1

    return rev

Inline-Kommentare eignen sich besser zur Spezifizierung von Logik, wenn diese nicht aus der Untersuchung des Codes selbst abgeleitet werden kann, oder für Code, der auf komplexeren Algorithmen basiert. Unterdessen können Docstrings für die Dokumentation von Programmierschnittstellen (API) extrahiert werden und bieten kontextuelle Unterstützung innerhalb integrierter Entwicklungsumgebungen (IDEs).

High-Level-Dokumentation

Im Gegensatz zu Low-Level-Dokumentationen, die Codeteile als einzelne Entitäten beschreiben, enthält High-Level-Dokumentation Details zu ihrer Rolle im umfassenderen architektonischen Workflow. Diese Art von Softwaredokumentation umfasst Flussdiagramme und Unified Modeling Language (UML)-Diagramme, die die Codearchitektur illustrieren, Designdokumente, die Geschäftslogik und die Übereinstimmung des Codes mit den Produktanforderungen darstellen, sowie Spezifikationen der Struktur von Codebasen oder Code-Repositories.

Interne Dokumentation

Diese technische Dokumentation ist für den internen Gebrauch innerhalb eines Unternehmens bestimmt. Beispiele hierfür sind Kodierungskonventionen und Standards sowie Prozessdokumente für die Erstellung von Software durch Teams. Anleitungen zum Einrichten von Entwicklungsumgebungen fallen ebenfalls unter die interne Dokumentation.

Externe Dokumentation

Diese anwenderorientierte Dokumentation richtet sich an Entwickler und andere Benutzer außerhalb eines Unternehmens. Die API-Dokumentation beschreibt beispielsweise die verfügbaren Klassen, Funktionen, Methoden und Module der öffentlichen APIs eines Softwareprojekts. Externe Dokumentation kann auch aus Konfigurationsdateien, Integrationsnotizen und einer README-Datei bestehen.

Die README-Datei ist in Markdown verfasst, einer schlanken Auszeichnungssprache zur Formatierung von reinem Text. Sie enthält Informationen über Projektfunktionen, Abhängigkeiten, Installationsanweisungen, Befehle für die Kommandozeile (CLI) und Optionen für Hilfe und Unterstützung. Open-Source-Projekte fügen außerdem Lizenzdetails und Richtlinien für Mitwirkende hinzu, um Pull Requests einzureichen, um Fehlerbehebungen oder Codeänderungen in den Hauptzweig des Code-Repositorys zu integrieren.

Vorteile der Code-Dokumentation

Das Schreiben von sauberem und übersichtlichem Code kann eine eigene Form der Dokumentation darstellen. Eine gute Dokumentation bleibt jedoch unerlässlich und bietet folgende Vorteile:

  • Verbesserung der Zusammenarbeit

  • Verbesserung der Wartbarkeit

  • Beschleunigung der Softwareentwicklung

  • Rationalisierung des Onboardings

Verbesserung der Zusammenarbeit

Gut dokumentierter Code fördert bessere Zusammenarbeit und Kommunikation innerhalb der Entwicklungsteams. Mitglieder können Code-Dokumentation als gemeinsame Sprache nutzen, um Code-Reviews durchzuführen, Code-Änderungen zu besprechen und gemeinsam Entscheidungen zu treffen.

Verbesserung der Wartbarkeit

Dokumentation erleichtert Code-Refactoring, Wartung und Leistungsoptimierung. Während des Debuggings können Entwickler die Code-Dokumentation als Referenzpunkt nutzen, um Codingfehler zu finden und deren Ursache genau zu bestimmen.

Beschleunigt die Softwareentwicklung

Gute Dokumentation ebnet den Weg für eine schnelle Entwicklung, spart Zeit bei der Lösung der Code-Funktionalität und lenkt den Fokus stattdessen auf die entsprechenden Code-Updates. Sie hilft auch dabei, Änderungen nachzuverfolgen und sicherzustellen, dass die Teams mit einer sich ständig weiterentwickelnden Codebasis Schritt halten können.

Rationalisierung des Onboardings

Die Code-Dokumentation hilft neuen Teammitgliedern, die Funktionsweise einer Codebasis zu verstehen. Sie können sich schneller mit dem Design und der Struktur des Codes vertraut machen, wodurch sie rasch zum Projekt beitragen können.

Tipps zum Schreiben einer effektiven Code-Dokumentation

Code und Dokumentation gehen Hand in Hand, daher müssen sie sich auch gemeinsam weiterentwickeln. Und einige Richtlinien zum Schreiben von Code gelten ebenso für das Verfassen von Dokumentation. Hier sind Tipps, die helfen können:

  • Standards für die Code-Dokumentation festlegen

  • Dokumentation in die Codierung integrieren

  • Klarheit und Präzision sind entscheidend

  • Codierungsentscheidungen dokumentieren 

  • Auf dem neuesten Stand halten

Festlegen von Code-Dokumentationsstandards

Ähnlich wie bei Programmierkonventionen müssen auch bei der Code-Dokumentation Standards eingehalten werden. Diese Standards umfassen konsistente Formatierungen, wie Einzüge, Zeilenumbrüche und Abstand für Low-Level-Dokumentationen. In der Zwischenzeit können Vorlagen und Code-Dokumentationstools bei der Gestaltung und Strukturierung der API-Dokumentation und anderer High-Level- und externer Dokumentation helfen.

Integrieren Sie Dokumentation mit Codierung

Dies kann das Hinzufügen von Docstrings nach Abschluss einer Funktion oder das Einfügen von Inline-Kommentaren bei der Implementierung komplizierter Algorithmen oder Logik beinhalten. Das Schreiben von Dokumentationen während des Programmierens kann Entwicklern helfen, ihren Denkprozess und ihre Entscheidungen zu formulieren und sicherzustellen, dass wichtige Details unterwegs nicht verloren gehen. Es kann am Anfang etwas mehr Zeit in Anspruch nehmen, aber zu einem natürlichen Teil des Codierungsprozesses werden und Debugging, Optimierung und Refactoring beschleunigen.

Klarheit und Prägnanz sind entscheidend

Eine übermäßige Dokumentation kann die Lesbarkeit des Codes beeinträchtigen. Entwickler müssen der Erstellung von sauberem und übersichtlichem Code Priorität einräumen und anschließend die notwendige Dokumentation hinzufügen, die sich nahtlos in den Code einfügt.

Wenn es um Prägnanz geht, ist es entscheidend, das richtige Maß zu finden. Kurze und einfache Codefragmente benötigen beispielsweise unter Umständen überhaupt keine Dokumentation. Andererseits benötigen komplexere Algorithmen eine Dokumentation, die die zugrunde liegende Logik so erklärt, dass sie auch für Entwickler mit unterschiedlichem Erfahrungsstand verständlich ist.

Codierungsentscheidungen dokumentieren

Dazu gehören Design, Architektur, Logik und algorithmische Entscheidungen. Die Dokumentation dieser Codierungsentscheidungen, sei es durch ein internes High-Level-Dokument oder eine gemeinsame Wissensdatenbank, bietet Kontext für alle Änderungen, die in Zukunft vorgenommen werden sollen.

Auf dem neuesten Stand halten

Entwicklungsteams müssen regelmäßige Reviews und Aktualisierungen ihrer Code-Dokumentation durchführen, um sicherzustellen, dass sie korrekt, vollständig und relevant ist und den aktuellen Stand der Software widerspiegelt. Die Integration von Dokumentation in den Code-Review-Prozess kann bei regelmäßigen Aktualisierungen helfen.

Anwendungsentwicklung

Steigen Sie ein: Entwicklung von Enterprise-Anwendungen in der Cloud

In diesem Video erläutert Dr. Peter Haumer, wie die moderne Entwicklung von Unternehmensanwendungen in der Hybrid Cloud heute aussieht, indem er verschiedene Komponenten und Praktiken demonstriert, darunter IBM Z Open Editor, IBM Wazi und Zowe. 

Code-Dokumentations-Tools

Die meisten IDEs verfügen über Erweiterungen oder Plugins zur Erstellung von Code-Dokumentation, aber auch andere Frameworks und Tools können bei der Automatisierung des Prozesses helfen. Hier sind einige gängige Dokumentationsgeneratoren:

  • Doxygen

  • GitBook

  • Javadoc

  • JSDoc

  • Sphinx

Doxygen

Doxygen unterstützt mehrere Programmiersprachen, wie zum Beispiel C, C++, Java, PHP und Python. Es ermöglicht Markdown-Rendering und kann Dokumentationen in HTML-, PDF- und XML-Formaten erstellen. Doxygen kann über eine Konfigurationsdatei angepasst werden und bietet die Möglichkeit, Diagramme zu generieren, die visuelle Hierarchien und Korrelationen zwischen Klassen und Funktionen darstellen.

GitBook

GitBook bietet eine Benutzeroberfläche für das Schreiben und Veröffentlichen von Dokumentation als Website, was die Erstellung interner und externer Dokumentation effizienter machen kann. Die Plattform bietet außerdem eine Synchronisierungsfunktion für GitHub- oder GitLab-Repositories.

Javadoc

Das Javadoc-Tool analysiert Dokumentationskommentare innerhalb des Java-Quellcodes, um API-Dokumentation im HTML-Format zu generieren. Es kann Klassen, Konstruktoren, Felder, Schnittstellen und Methoden dokumentieren.

JSDoc

Ähnlich wie Javadoc generiert JSDoc API-Dokumentation für JavaScript-Projekte. Seine Open-Source-Community hat Vorlagen und Tools für die Anpassung der Dokumentation entwickelt.

Sphinx

Sphinx wurde hauptsächlich für Python entwickelt, lässt sich aber auch auf andere Programmiersprachen anwenden. Es unterstützt Markdown und seine eigene Markup-Sprache namens reStructuredText. Sphinx kann Dokumentationen in verschiedenen Ausgabeformaten erstellen und bietet Querverweise, um auf andere Codeelemente zu verweisen.

Generative KI für Code-Dokumentation

Dokumentationsgeneratoren sind auf die Anmerkungen beschränkt, denen sie im Quellcode begegnen. Generative KI geht bei der Dokumentation noch einen Schritt weiter, indem sie einen spezifischen Codeabschnitt analysiert und Codekommentare hinzufügt, die dessen Zweck und Funktion beschreiben. Viele große Sprachmodelle (LLMs) für Code verfügen über integrierte Funktionen zur Erstellung von Dokumentation.

Beispielsweise kann IBM® Bob Kommentarzeilen für eine einzelne Methode oder für alle Methoden innerhalb einer Klasse generieren. Weitere ähnliche Tools sind GitHub Copilot, JetBrains AI Assistant, Mintlify und Tabnine.

Wie bei jedem künstlicher Intelligenzsystem müssen Entwickler die Ausgaben von KI-gestützten Code-Dokumentationstools dennoch auf Vollständigkeit und Genauigkeit überprüfen.

Autoren

Rina Diane Caballar

Staff Writer

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

Verwandte Lösungen
IBM Bob

Beschleunigen Sie die Softwarebereitstellung mit Bob, Ihrem KI-Partner für sichere, absichtsorientierte Entwicklung.

IBM Bob erkunden
KI-Codierungslösungen

Optimieren Sie die Softwareentwicklung mit vertrauenswürdigen KI-gestützten Tools, die den Zeitaufwand für das Schreiben von Code, Debuggen, Code-Refactoring oder Codevervollständigung minimieren und mehr Raum für Innovation schaffen.

KI-Codierungslösungen erkunden
KI-Beratung und -Services

Erfinden Sie kritische Workflows und Abläufe neu, indem Sie KI einsetzen, um Erfahrungen, Entscheidungsfindung in Echtzeit und den geschäftlichen Nutzen zu maximieren.

Erkunden Sie unsere KI-Beratungsleistungen
Machen Sie den nächsten Schritt

Mit generativer KI und fortschrittlicher Automatisierung schneller Code speziell für Unternehmen erstellen. Bob nutzt Modelle, um das Skill-Profil von Entwicklern zu erweitern und Ihre Entwicklungs- und Modernisierungsbemühungen zu vereinfachen und zu automatisieren.

  1. IBM Bob entdecken
  2. KI-Codierungslösungen erkunden