{"meta":{"title":"Dokumentieren von Legacy-Code","intro":"Copilot-Chat kann bei der Dokumentation von Legacy-Code helfen.","product":"GitHub Copilot","breadcrumbs":[{"href":"/de/copilot","title":"GitHub Copilot"},{"href":"/de/copilot/tutorials","title":"Anleitungen"},{"href":"/de/copilot/tutorials/copilot-chat-cookbook","title":"GitHub Copilot Chat-Cookbook"},{"href":"/de/copilot/tutorials/copilot-chat-cookbook/document-code","title":"Dokumentcode"},{"href":"/de/copilot/tutorials/copilot-chat-cookbook/document-code/document-legacy-code","title":"Dokumentieren von Legacycode"}],"documentType":"article"},"body":"# Dokumentieren von Legacy-Code\n\nCopilot-Chat kann bei der Dokumentation von Legacy-Code helfen.\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## Beispielprompt\n\nMit einem einfachen Prompt kann Copilot-Chat angewiesen werden, 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\nZum Beispiel:\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## Weitere Informationen\n\n* [Prompt-Engineering für GitHub Copilot Chat](/de/copilot/using-github-copilot/prompt-engineering-for-github-copilot)\n* [Bewährte Methoden für die Verwendung von GitHub Copilot](/de/copilot/using-github-copilot/best-practices-for-using-github-copilot)"}