4. Checklist de Validación ✅
¿Por qué necesitás un checklist?
El código generado por IA puede funcionar visualmente y aun así contener errores silenciosos, vulnerabilidades de seguridad o malas prácticas que solo se revelan en producción. Un checklist sistemático te protege de aceptar código a ciegas.
"Que compile y que funcione no son sinónimos de que sea seguro, eficiente o mantenible."
El Checklist de 4 Preguntas
Antes de incorporar cualquier código sugerido por una IA a tu proyecto, hacete estas 4 preguntas en orden:
1️⃣ ¿Copia o procesa datos sin validar?
Verificá que el código compruebe tipos de datos, valores nulos, rangos válidos y longitudes máximas antes de procesar cualquier entrada.
2️⃣ ¿Modifica la estructura de datos original?
Buscá mutaciones inesperadas: métodos como .sort(), .pop(),
.splice() o del lista[i] que alteren la fuente de datos original.
En frameworks reactivos (React, Vue), mutar props o estados directamente genera bugs difíciles de rastrear.
3️⃣ ¿Maneja excepciones específicas?
Un except Exception o un catch(e) genérico silencia todos
los errores, incluso los que no esperás. Verificá que se atrapen excepciones concretas
(ValueError, KeyError, TypeError).
4️⃣ ¿Complejidad clara y razonable?
¿La solución tiene una complejidad temporal proporcional al problema? Un bucle dentro de otro sobre la misma colección (O(n²)) puede ser aceptable para 10 elementos pero catastrófico para 100.000.
Ejemplo práctico: Aplicando el checklist
Copilot te sugiere esta función para eliminar duplicados de una lista de productos:
Apliquemos el checklist:
| Pregunta | Análisis | Veredicto |
|---|---|---|
| 1. ¿Valida datos? | No verifica si productos es None o si contiene tipos mezclados. | ⚠️ Falta |
| 2. ¿Muta el original? | No. Crea una lista nueva resultado, la original queda intacta. | ✅ OK |
| 3. ¿Excepciones? | No hay try/except, pero tampoco hay operaciones que puedan fallar (salvo entrada nula). | ⚠️ Parcial |
| 4. ¿Complejidad? | in resultado recorre la lista en cada iteración: es O(n²). Con un set auxiliar bajaría a O(n). | ⚠️ Mejorable |
Versión mejorada tras aplicar el checklist:
Responsabilidad profesional: ¿De quién es el código?
Un punto fundamental que debés interiorizar:
⚖️ Principio de Responsabilidad
La responsabilidad sobre el código siempre recae en la persona que lo desarrolla, no en la IA que lo sugirió. Si el código causa una brecha de seguridad, un fallo en producción o un error de lógica, el responsable sos vos.
Utilizar IA de forma ética implica:
- Comprender el código generado antes de integrarlo.
- Proteger los datos del proyecto y sus usuarios (lección 2).
- Mantener un rol activo en el proceso de aprendizaje y toma de decisiones.
- Documentar qué partes contaron con asistencia de IA y cómo se validaron.
Transparencia: Documentar el uso de IA
En entornos académicos y profesionales, es importante declarar qué herramientas usaste. No para "castigar" su uso, sino para demostrar que entendés lo que entregás:
Preguntas de reflexión final
🧠 Reflexioná
- ¿Cuál es el principal riesgo de aceptar código de Copilot sin comprenderlo?
- Mencioná dos acciones concretas para proteger datos al programar con IA.
- ¿Cómo asegurar transparencia y no dependencia en tu informe o documentación?
✅ Desafío Final: Revisá código de IA
Pedile a tu asistente de IA favorito que genere una función para calcular el descuento de un producto (recibe precio y porcentaje). Aplicá el checklist de 4 preguntas, documentá tus hallazgos y mejorá el código si encontrás problemas.
👁️ Ver criterio de evaluación
Tu análisis debería cubrir:
1. ¿Valida que precio y porcentaje sean positivos y numéricos?
2. ¿Qué pasa si porcentaje es mayor a 100?
3. ¿Maneja excepciones si le pasás un string?
4. ¿El cálculo es directo (O(1)) o innecesariamente complejo?