Code Prompting
El Code Prompting DEBE implementarse como un proceso estructurado y controlado para la generación, traducción, explicación o depuración de código mediante modelos de lenguaje. Todo prompt DEBE especificar explícitamente el lenguaje de programación, formato de salida, y requisitos de documentación.
Ejemplos
✅ Ejemplo Correcto
Objetivo del Prompt
Generar una función en Python que calcule el factorial de un número, incluyendo documentación, manejo de errores y un caso de prueba.
Parámetros Recomendados
- Temperature: 0.3
- Top-K: 5
- Top-P: 0.8
- Token Limit: 60
Prompt
Lenguaje: Python
Requisitos:
- Documentación inline
- Manejo de errores
- Caso de prueba incluido
Tarea: Escribe una función que calcule el factorial de un número entero positivo.
Ejemplo de entrada/salida:
Input: 5
Output esperado: 120
Output
def factorial(n):
"""Calcula el factorial de un número entero positivo."""
if not isinstance(n, int) or n < 0:
raise ValueError("El número debe ser un entero positivo.")
if n == 0:
return 1
return n * factorial(n-1)
# Caso de prueba
assert factorial(5) == 120
❌ Ejemplo Incorrecto
Objetivo del Prompt
Generar código, pero sin especificar lenguaje, requisitos ni ejemplos claros.
Parámetros Recomendados
- Temperature: 0.3
- Top-K: 5
- Top-P: 0.8
- Token Limit: 60
Prompt
Escribe código para calcular el factorial de un número.
Output
factorial(n) = n * factorial(n-1)
Justificación
La implementación consistente de Code Prompting es necesaria porque:
- Garantiza la consistencia y calidad del código generado
- Previene errores de interpretación y malas prácticas
- Facilita la integración con sistemas de control de calidad
- Mejora la mantenibilidad y documentación del código
Reglas de Uso
1. Estructura del Prompt
- DEBE especificarse el lenguaje de programación objetivo
- DEBE incluirse el formato de salida esperado
- DEBE detallarse los requisitos de documentación
- DEBE proporcionarse ejemplos de entrada/salida
2. Generación de Código
- DEBE incluir manejo de errores
- DEBE seguir las convenciones del lenguaje
- DEBE incluir documentación inline
- DEBE ser testeable y verificable
3. Validación
- DEBE incluir casos de prueba
- DEBE verificar la sintaxis
- DEBE comprobar el rendimiento
- DEBE validar la seguridad
Cuándo Aplicar
- Generación de funciones o scripts repetitivos
- Traducción entre lenguajes de programación
- Documentación automática de código
- Generación de pruebas unitarias
- Refactorización de código existente
Cuándo Evitar
- Generación de código crítico para la seguridad
- Implementación de algoritmos complejos sin supervisión
- Generación de código que requiere conocimiento de dominio específico
- Desarrollo de componentes core del sistema
Métricas de Calidad
| Métrica | Descripción | Umbral Mínimo |
|---|---|---|
| Cobertura de Tests | Porcentaje de código cubierto | ≥ 80% |
| Complejidad | Puntuación de complejidad ciclomática | ≤ 10 |
| Documentación | Porcentaje de funciones documentadas | 100% |
| Seguridad | Puntuación de análisis estático | ≥ 90 |
Referencias Técnicas
- Herramientas de análisis estático: SonarQube, ESLint
- Frameworks de testing: Jest, Pytest, JUnit
- IDEs con integración LLM: GitHub Copilot, Cursor
- Métricas de calidad: CodeClimate, SonarCloud