{"meta":{"title":"Documenter le code existant","intro":"Discussion avec Copilot peut aider à documenter le code existant.","product":"GitHub Copilot","breadcrumbs":[{"href":"/fr/copilot","title":"GitHub Copilot"},{"href":"/fr/copilot/tutorials","title":"Tutoriels"},{"href":"/fr/copilot/tutorials/copilot-chat-cookbook","title":"Cookbook GitHub Copilot Chat"},{"href":"/fr/copilot/tutorials/copilot-chat-cookbook/document-code","title":"Code du document"},{"href":"/fr/copilot/tutorials/copilot-chat-cookbook/document-code/document-legacy-code","title":"Documenter le code existant"}],"documentType":"article"},"body":"# Documenter le code existant\n\nDiscussion avec Copilot peut aider à documenter le code existant.\n\nTravailler avec du code hérité peut être un défi pour les développeurs, en particulier lorsque le code est complexe ou peu documenté. Dans ce cas, il peut être utile d’utiliser Copilot Chat pour expliquer du code peu clair ou complexe à d’autres développeurs ou pour le documenter pour une référence ultérieure.\n\n## Exemple de scénario\n\nLe bloc COBOL ci-dessous se connecte à une base de données et insère un enregistrement. Le code manque de documentation, ce qui rend difficile la compréhension de ce qu'il fait et de son fonctionnement.\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## Exemple d’invite\n\nNous pouvons utiliser un simple prompt pour demander à Discussion avec Copilot d’ajouter de la documentation au code.\n\n```copilot copy prompt ref=cobol-insert-record\nComment this code thoroughly\n```\n\n> \\[!NOTE] Si vous souhaitez que la documentation soit générée dans un autre format comme Markdown, vous pouvez spécifier le format de sortie souhaité dans l’invite. Par exemple : `Document this code in Markdown`.\n\n## Exemple de réponse\n\n> \\[!NOTE] La réponse suivante est un exemple. Les réponses Discussion avec Copilot ne sont pas déterministes, vous pouvez donc obtenir une réponse différente de celle affichée ici.\n\nCopilot fournit une vue d’ensemble du texte du bloc de code et une version mise à jour avec des commentaires expliquant la logique et l’objectif de chaque section.\n\nPar exemple :\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## Pour approfondir\n\n* [Ingénierie rapide pour GitHub Copilot Chat](/fr/copilot/using-github-copilot/prompt-engineering-for-github-copilot)\n* [Meilleures pratiques pour l’utilisation de GitHub Copilot](/fr/copilot/using-github-copilot/best-practices-for-using-github-copilot)"}