Skip to main content

Explicación del código heredado

El Copilot Chat puede ayudar a explicar código con el que no estemos familiarizados.

Uno de los mayores desafíos que plantea el código heredado es ayudar a que los desarrolladores que no están familiarizados con los lenguajes o los marcos puedan comprenderlo. Con el Copilot Chat, puedes explicar los conocimientos que tienes y pedir una explicación.

Escenario de ejemplo

Ten en cuenta el código COBOL siguiente. Si eres desarrollador de Python (por ejemplo), es posible que no estés familiarizado con COBOL, por lo que puedes pedir al Copilot Chat que te explique el código.

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
    .

Ejemplos de indicaciones

Puedes pedir una explicación del código COBOL desde el punto de vista de un desarrollador de Python.

I'm a Python developer. Help me better understand this code. Please provide analogies.

Respuesta de ejemplo

Note

La respuesta siguiente es un ejemplo. Las respuestas de Copilot Chat no son deterministas, por lo que puedes obtener una respuesta diferente a la aquí mostrada.

Copilot proporciona información general de alto nivel sobre el código, antes de recorrer las distintas operaciones y explicarlas de forma que los desarrolladores de Python puedan comprender. Usa analogías para que la explicación sea más accesible. La respuesta puede comenzar con lo siguiente:

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

Información adicional