{"meta":{"title":"Erklärung von Legacy-Code","intro":"Copilot-Chat kann beim Erläutern von unbekanntem 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/explain-legacy-code","title":"Legacycode erläutern"}],"documentType":"article"},"body":"# Erklärung von Legacy-Code\n\nCopilot-Chat kann beim Erläutern von unbekanntem Code helfen.\n\nEine der größten Herausforderungen bei Legacycode ist es, ihn Entwicklern zu erklären, die nicht mit den Sprachen oder Frameworks vertraut sind. Bei Copilot-Chat kannst du deinen Hintergrund erklären und eine Erläuterung anfordern.\n\n## Beispielszenario\n\nBeachte den folgenden COBOL-Code. Wenn du z. B. ein Python-Entwickler bist, kennst du dich möglicherweise nicht mit COBOL-Code aus. Du könntest Copilot-Chat auffordern, dir den Code zu erläutern.\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\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 eine allgemeine Übersicht über den Code, bevor die einzelnen Vorgänge auf eine Weise erklärt werden, die Python-Entwickler verstehen. Er verwendet Analogien, um die Erklärung verständlicher 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## 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)"}