Generación de comentarios

GitHub Copilot es un motor que genera código, pero también puede generar comentarios a partir del código. Por ejemplo, supongamos que tenemos el siguiente código de la criba de Eratóstenes sin comentarios.

def eratosthenes_sieve(n):
    primes = []
    sieve = [True] * (n + 1)
    for p in range(2, n + 1):
        if sieve[p]:
            primes.append(p)
            for i in range(p * p, n + 1, p):
                sieve[i] = False
    return primes

GitHub Copilot puede escribir comentarios explicando el método de la siguiente manera:

# Escribir aquí la descripción del método <- [Prompt Actual]
# Entrada: n - el número de números primos a devolver
# Salida: una lista de los primeros n números primos
# Ejemplo: eratosthenes_sieve(5) -> [2, 3, 5, 7, 11]
# Nota: esta es una forma muy ineficiente de encontrar números primos, pero es fácil de entender
def eratosthenes_sieve(n):
    primes = []
    sieve = [True] * (n + 1)
    for p in range(2, n + 1):
        if sieve[p]:
            primes.append(p)
            for i in range(p * p, n + 1, p):
                sieve[i] = False
    return primes

Además, se puede escribir una explicación del algoritmo a partir del código, lo que permite a los ingenieros entender el código de otros más rápidamente.

def eratosthenes_sieve(n):
    primes = []
    sieve = [True] * (n + 1)
    # Descripción del algoritmo <- [Prompt Actual]
    # 1. Crear una lista de enteros consecutivos desde 2 hasta n: (2, 3, 4, ..., n).
    # 2. Inicialmente, p = 2, el primer número primo.
    # 3. A partir de p, enumerar sus múltiplos contando hasta n en incrementos de p, y marcarlos en la lista
    #    (estos serán 2p, 3p, 4p, ...; el p en sí no debe ser marcado).
    # 4. Encontrar el primer número mayor que p en la lista que no está marcado. Si no existe tal número, detenerse.
    #    De lo contrario, dejar que p ahora sea igual a este nuevo número (que es el siguiente número primo), y repetir desde el paso 3.
    for p in range(2, n + 1):
        if sieve[p]:
            primes.append(p)
            for i in range(p * p, n + 1, p):
                sieve[i] = False
    return primes

Mostrar Pasos

El uso de la función LIST STEPS en Code Brushes de GitHub Next permite hacer lo mismo.

def calculate_sum(numbers):
    # inicializar una variable para seguir la suma total
    total = 0
    # iterar sobre cada número en la lista
    for number in numbers:
        # agregar el número a la suma total
        total += number
    # devolver la suma total
    return total

De Código a Documento

Si el código es muy grande, otra opción es utilizar herramientas de inteligencia artificial en forma de chat, como ChatGPT o Bing, para obtener una explicación de la documentación del código completo y así entender su descripción general.

Last updated