{"meta":{"title":"Dokumentieren von Legacy-Code","intro":"Copilot Chat kann beim Dokumentieren von Legacycode hilfreich sein.","product":"GitHub Copilot","breadcrumbs":[{"href":"/de/copilot","title":"GitHub Copilot"},{"href":"/de/copilot/tutorials","title":"Anleitungen"},{"href":"/de/copilot/tutorials/copilot-cookbook","title":"GitHub Copilot Kochbuch"},{"href":"/de/copilot/tutorials/copilot-cookbook/document-code","title":"Dokumentcode"},{"href":"/de/copilot/tutorials/copilot-cookbook/document-code/document-legacy-code","title":"Dokumentieren von Legacycode"}],"documentType":"article"},"body":"# Dokumentieren von Legacy-Code\n\nCopilot Chat kann beim Dokumentieren von Legacycode hilfreich sein.\n\nDas Arbeiten mit Legacycode kann für Entwickler eine Herausforderung darstellen, insbesondere wenn der Code komplex oder nicht gut dokumentiert ist. In solchen Fällen kann es hilfreich sein, Copilot Chat zu verwenden, um anderen Entwicklern unklaren oder komplexen Code zu erklären oder ihn als Referenz für die Zukunft zu dokumentieren.\n\n## Beispielszenario\n\nDer untenstehende COBOL-Block stellt eine Verbindung mit einer Datenbank her und fügt einen Datensatz ein. Für den Code fehlt Dokumentation. Dadurch ist es schwierig zu verstehen, was er tut und wie er funktioniert.\n\n```text id=cobol-insert-record\nIDENTIFICATION DIVISION.\nPROGRAM-ID. INSERT-RECORD.\n\nENVIRONMENT DIVISION.\n\nDATA DIVISION.\nWORKING-STORAGE SECTION.\n01  WS-STATUS-FLAGS.\n    05 WS-DB-STATUS     PIC X(2).\n       88 WS-SUCCESS    VALUE \"00\".\n    05 WS-SQLCODE       PIC S9(9) COMP.\n    05 WS-ERROR-MSG     PIC X(50).\n\nLINKAGE SECTION.\n01  LS-PARAMETERS.\n    05 LS-PERSON-RECORD.\n       10 PERSON-ID     PIC 9(6).\n       10 PERSON-NAME   PIC X(50).\n       10 PERSON-AGE    PIC 9(3).\n    05 LS-RESULT        PIC X.\n       88 SUCCESS       VALUE 'T'.\n       88 FAILED        VALUE 'F'.\n\nPROCEDURE DIVISION USING LS-PARAMETERS.\n    PERFORM INSERT-AND-VALIDATE\n    GOBACK\n    .\n\nINSERT-AND-VALIDATE.\n    EXEC SQL\n        INSERT INTO persons (id, name, age)\n        VALUES (:PERSON-ID, :PERSON-NAME, :PERSON-AGE)\n    END-EXEC\n\n    IF SQLCODE = 0\n        EXEC SQL COMMIT END-EXEC\n        SET SUCCESS TO TRUE\n    ELSE\n        EXEC SQL ROLLBACK END-EXEC\n        SET FAILED TO TRUE\n        STRING \"DB Error: \" SQLCODE\n            DELIMITED BY SIZE\n            INTO WS-ERROR-MSG\n        DISPLAY WS-ERROR-MSG\n    END-IF\n    .\n```\n\n## Beispielaufforderung\n\nWir können einen einfachen Prompt verwenden, um Copilot Chat zu bitten, dem Code Dokumentation hinzuzufügen.\n\n```copilot copy prompt ref=cobol-insert-record\nComment this code thoroughly\n```\n\n> \\[!NOTE] Wenn die Dokumentation in einem anderen Format wie z. B. Markdown generiert werden soll, kannst du das gewünschte Ausgabeformat im Prompt angeben. Beispiel: `Document this code in Markdown`.\n\n## Beispielantwort\n\n> \\[!NOTE] Die folgende Antwort ist ein Beispiel. Da die Copilot Chat-Antworten nicht deterministisch sind, erhältst du möglicherweise eine andere Antwort als die hier beschriebene.\n\nCopilot bietet eine Textübersicht über den Codeblock und eine aktualisierte Version mit Kommentaren, die die Logik und den Zweck der einzelnen Abschnitte erläutert.\n\nBeispiel:\n\n```text\n*****************************************************************\n* Program: INSERT-RECORD\n* Purpose: Inserts a person record into the database with\n*          transaction management and error handling\n*****************************************************************\n IDENTIFICATION DIVISION.\n PROGRAM-ID. INSERT-RECORD.\n\n ENVIRONMENT DIVISION.\n\n DATA DIVISION.\n WORKING-STORAGE SECTION.\n* Status flags and error handling variables\n 01  WS-STATUS-FLAGS.\n     05 WS-DB-STATUS     PIC X(2).              *> Database status\n        88 WS-SUCCESS    VALUE \"00\".            *> Success flag\n     05 WS-SQLCODE       PIC S9(9) COMP.        *> SQL return code\n     05 WS-ERROR-MSG     PIC X(50).             *> Error message\n\n LINKAGE SECTION.\n* Input/Output parameters\n 01  LS-PARAMETERS.\n     05 LS-PERSON-RECORD.\n        10 PERSON-ID     PIC 9(6).              *> Person ID\n        10 PERSON-NAME   PIC X(50).             *> Person name\n        10 PERSON-AGE    PIC 9(3).              *> Person age\n     05 LS-RESULT        PIC X.                 *> Operation result\n        88 SUCCESS       VALUE 'T'.             *> Success flag\n        88 FAILED        VALUE 'F'.             *> Failure flag\n\n PROCEDURE DIVISION USING LS-PARAMETERS.\n     PERFORM INSERT-AND-VALIDATE\n     GOBACK\n     .\n\n*****************************************************************\n* Handles database insertion with transaction management\n*****************************************************************\n INSERT-AND-VALIDATE.\n     EXEC SQL\n         INSERT INTO persons (id, name, age)\n         VALUES (:PERSON-ID, :PERSON-NAME, :PERSON-AGE)\n     END-EXEC\n\n     IF SQLCODE = 0\n         EXEC SQL COMMIT END-EXEC                *> Commit if successful\n         SET SUCCESS TO TRUE\n     ELSE\n         EXEC SQL ROLLBACK END-EXEC              *> Rollback if failed\n         SET FAILED TO TRUE\n         STRING \"DB Error: \" SQLCODE\n             DELIMITED BY SIZE\n             INTO WS-ERROR-MSG\n         DISPLAY WS-ERROR-MSG\n     END-IF\n     .\n```\n\n## Weiterführende Lektüre\n\n* [Prompt-Engineering für GitHub Copilot Chat](/de/copilot/concepts/prompting/prompt-engineering)\n* [Bewährte Methoden für die Verwendung von GitHub Copilot](/de/copilot/get-started/best-practices)"}