Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Prompt engineering para programación, Unidad 11 — Programación asistida en producción, 11.1 — Integración en el flujo de trabajo ·

Revisiones de código

Revisiones de código

Introducción

Las revisiones de código son una práctica esencial para asegurar la calidad y seguridad del software. En el contexto de la programación asistida por inteligencia artificial (IA), las revisiones de código desempeñan un papel crucial en garantizar que el código generado por LLMs cumpla con los estándares de calidad y siga las mejores prácticas. Las revisiones permiten identificar errores, mejorar la legibilidad del código y asegurar su seguridad antes de que sea integrado en el sistema.

Explicación principal

Las revisiones de código pueden ser manuales o automatizadas. En un entorno donde se utiliza IA para generar código, las revisiones manualmente ejecutadas deben ser más rigurosas y detalladas. Aquí te presentamos una guía paso a paso para realizar revisiones efectivas:

Ejemplo de revisión

Supongamos que tenemos el siguiente código generado por un LLM en Python:

def sumar(a, b):
    return a + b

Paso 1: Comprobar la lógica y comportamiento del código.

  • Verificar si se cumplen los requisitos funcionales.
  • Evaluar si el código es seguro (sin inyecciones SQL o de codificación).

Errores típicos / trampas

  1. Inyección SQL: Una revisión no detallada puede ignorar la seguridad del código, lo que podría llevar a inyecciones SQL.
    def consultar_base_de_datos(query):
        cursor.execute(f"SELECT * FROM users WHERE username = '{query}'")
  1. Manejo incorrecto de excepciones: El código generado puede omitir el manejo adecuado de excepciones, lo que podría llevar a errores silenciosos.
    def abrir_archivo(ruta):
        with open(ruta) as file:
            return file.read()
  1. Dependencias no manejadas: El código generado puede hacer referencia a bibliotecas o servicios que no están disponibles en el entorno de producción.
    from requests import get

    def obtener_datos_api(url):
        response = get(url)
        return response.json()

Checklist accionable

  1. Validar la seguridad del código: Revisa si se evitan inyecciones SQL, XSS, etc.
  2. Comprobar el manejo de excepciones: Asegúrate de que todos los posibles errores sean manejados.
  3. Verificar las dependencias: Confirma que todas las bibliotecas y servicios requeridos estén disponibles en producción.
  4. Evaluar la legibilidad del código: Comprueba si el código es fácil de entender para otros desarrolladores.
  5. Revisar los comentarios: Asegúrate de que haya suficientes comentarios explicativos donde sea necesario.
  6. Realizar pruebas unitarias: Ejecuta tests unitarios para verificar la funcionalidad del código generado.
  7. Comprobar el estilo de codificación: Verifica que el código cumpla con los estándares de estilo definidos para el proyecto.
  8. Asegurar documentación: Confirma que haya una documentación adecuada para cada función o módulo.
  9. Revisar la eficiencia del código: Evalúa si el código es lo suficientemente eficiente y optimizado.
  10. Comprobar las políticas de calidad: Asegúrate de que el código cumpla con todas las políticas de calidad definidas para el proyecto.

Siguientes pasos

  • Revisión automática: Implementar herramientas de revisión automatizada como linters y formatters.
  • Documentación de procesos: Crear un proceso detallado para revisiones de código que pueda ser seguido por todo el equipo.
  • Formación del equipo: Capacitar a todos los miembros del equipo en la importancia y el método correcto de las revisiones de código.

Las revisiones de código son una práctica crucial para asegurar la calidad del software, especialmente en entornos donde se utiliza la inteligencia artificial para asistir en la generación de código. Al seguir este checklist y las mejores prácticas descritas, puedes garantizar que el código generado sea seguro, legible e íntegro antes de ser integrado en tu sistema.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).