Eine 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.
Beispielszenario
Beachte 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.
IDENTIFICATION DIVISION.
PROGRAM-ID. INSERT-RECORD.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-STATUS-FLAGS.
05 WS-DB-STATUS PIC X(2).
88 WS-SUCCESS VALUE "00".
05 WS-SQLCODE PIC S9(9) COMP.
05 WS-ERROR-MSG PIC X(50).
LINKAGE SECTION.
01 LS-PARAMETERS.
05 LS-PERSON-RECORD.
10 PERSON-ID PIC 9(6).
10 PERSON-NAME PIC X(50).
10 PERSON-AGE PIC 9(3).
05 LS-RESULT PIC X.
88 SUCCESS VALUE 'T'.
88 FAILED VALUE 'F'.
PROCEDURE DIVISION USING LS-PARAMETERS.
PERFORM INSERT-AND-VALIDATE
GOBACK
.
INSERT-AND-VALIDATE.
EXEC SQL
INSERT INTO persons (id, name, age)
VALUES (:PERSON-ID, :PERSON-NAME, :PERSON-AGE)
END-EXEC
IF SQLCODE = 0
EXEC SQL COMMIT END-EXEC
SET SUCCESS TO TRUE
ELSE
EXEC SQL ROLLBACK END-EXEC
SET FAILED TO TRUE
STRING "DB Error: " SQLCODE
DELIMITED BY SIZE
INTO WS-ERROR-MSG
DISPLAY WS-ERROR-MSG
END-IF
.
Beispiel für Prompt
Du kannst mit der Sichtweise eines Python-Entwicklers eine Erklärung des COBOL-Codes anfordern.
I'm a Python developer. Help me better understand this code. Please provide analogies.
Beispielantwort
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.
Copilot bietet eine allgemeine Übersicht über den Code, bevor die einzelnen Vorgänge auf eine Weise erklärt werden, die Python-Entwickler verstehen. Copilot verwendet Analogien, um die Erklärung verständlicher zu machen. Die Antwort könnte mit Folgendem beginnen:
Let me explain this COBOL code using Python analogies:
High-Level Overview
This is similar to a Python function that inserts a person's record into a database with error handling.
# In Python, the COBOL divisions would be like:
# IDENTIFICATION DIVISION = module/file name
# PROGRAM-ID = function name
def insert_record():
pass
# DATA DIVISION would be like declaring these variables:
class WorkingStorage:
db_status = "" # WS-DB-STATUS
sqlcode = 0 # WS-SQLCODE
error_msg = "" # WS-ERROR-MSG
# LINKAGE SECTION is like function parameters
class PersonRecord:
def __init__(self, person_id: int, person_name: str, person_age: int):
self.person_id = person_id # PERSON-ID
self.person_name = person_name # PERSON-NAME
self.person_age = person_age # PERSON-AGE
self.success = False # LS-RESULT