{"meta":{"title":"Erklärung von Legacy-Code","intro":"Copilot-Chat kann ihnen dabei helfen, unbekannten Code zu erläutern.","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/explain-legacy-code","title":"Legacycode erläutern"}],"documentType":"article"},"body":"# Erklärung von Legacy-Code\n\nCopilot-Chat kann ihnen dabei helfen, unbekannten Code zu erläutern.\n\nEine der größten Herausforderungen bei Legacycode ist es, ihn Entwicklern zu erklären, die nicht mit den Sprachen oder Frameworks vertraut sind. Mit Copilot-Chat, können Sie den Hintergrund erklären, den Sie haben und um eine Erklärung bitten.\n\n## Beispielszenario\n\nBeachte den folgenden COBOL-Code. Wenn Sie ein Python Entwickler sind (z. B.), sind Sie möglicherweise nicht mit COBOL vertraut, daher können Sie Copilot-Chat bitten, den Code Ihnen zu erklären.\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\nDu kannst mit der Sichtweise eines Python-Entwicklers eine Erklärung des COBOL-Codes anfordern.\n\n```copilot copy prompt ref=cobol-insert-record\nI'm a Python developer. Help me better understand this code. Please provide analogies.\n```\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 einen Überblick über den Code, bevor die verschiedenen Abläufe Schritt für Schritt durchgegangen und so erklärt werden, dass Python-Entwickler sie verstehen können. Copilot nutzt Analogien, um die Erklärung zugänglicher zu machen. Die Antwort könnte mit Folgendem beginnen:\n\n```text\nLet me explain this COBOL code using Python analogies:\n\nHigh-Level Overview\nThis is similar to a Python function that inserts a person's record into a database with error handling.\n```\n\n```python\n# In Python, the COBOL divisions would be like:\n\n# IDENTIFICATION DIVISION = module/file name\n# PROGRAM-ID = function name\ndef insert_record():\n    pass\n\n# DATA DIVISION would be like declaring these variables:\nclass WorkingStorage:\n    db_status = \"\"  # WS-DB-STATUS\n    sqlcode = 0     # WS-SQLCODE\n    error_msg = \"\"  # WS-ERROR-MSG\n\n# LINKAGE SECTION is like function parameters\nclass PersonRecord:\n    def __init__(self, person_id: int, person_name: str, person_age: int):\n        self.person_id = person_id    # PERSON-ID\n        self.person_name = person_name # PERSON-NAME\n        self.person_age = person_age   # PERSON-AGE\n        self.success = False          # LS-RESULT\n```\n\n## Weiterführende Lektüre\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)"}