Skip to main content

Marcadores de Código Generado (AI Code Smells)

Antipatrones típicos y marcadores de código sintético ('código con olor' de IA). Comentarios obvios excesivos, duplicación de utilidades en cada archivo, mocks falsos y bloques try-catch sin sentido que generan código no verificado.

1. Visión general del concepto y problema sistémico

Cualquier ingeniero senior experimentado puede, en 5 segundos durante una entrevista o auditoría de repositorio, decir: “Este código fue escrito por alguien que sabe lo que hace, y este otro fue simplemente copiado ciegamente de un chatbot sin revisión alguna.”

La inteligencia artificial escribe rápidamente, pero tiene maneras específicas y "malas costumbres" que en la industria se conocen como AI Code Smells.

Conocer estos marcadores es esencial para cada principiante: esto te ayudará a limpiar el proyecto a tiempo de basura sintética y a parecer un desarrollador profesional ante colegas y clientes.

2. Taxonomía arquitectónica y modelo mental

┌─────────────────────────────────────────────────────────────┐
│                 TOP-4 MARCADORES «AI CODE SMELLS»          │
├─────────────────────────────────────────────────────────────┤
│ 1. 📢 Comentarios banales:                                   │
│    // Asignamos un valor a la variable a                   │
│    const a = 10; // Este es el número diez                 │
├─────────────────────────────────────────────────────────────┤
│ 2. 🖨️ Duplicación de utilidades en cada archivo:           │
│    En lugar de importar la función común `formatDate()`,   │
│    la IA copia la misma función en 15 líneas en 7          │
│    componentes diferentes                                    │
├─────────────────────────────────────────────────────────────┤
│ 3. 🙈 Bloques vacíos de captura de errores:                 │
│    try { doSomething(); } catch (e) { /* no hacemos nada */│
│    (Ocurre un error, pero nunca te enterarás de él)        │
├─────────────────────────────────────────────────────────────┤
│ 4. 🤹 Sobrecarga de cosas simples:                          │
│    Crear 3 clases, una fábrica y una interfaz por una      │
│    operación matemática simple de sumar dos números         │
└─────────────────────────────────────────────────────────────┘

3. Pipeline técnico y mecánica interna

Compara dos fragmentos de código:

❌ Antes (Salida típica de IA):

// Función que verifica al usuario
function checkUser(user: any) {
  try {
    // Si el usuario existe
    if (user != null) {
      // Devolvemos verdadero
      return true;
    }
  } catch (err) {
    console.log("Error");
  }
  return false;
}

✅ Después (Código ingenieril limpio):

export function isUserActive(user: User | null): boolean {
  return Boolean(user?.isActive);
}

4. Escenarios prácticos de ingeniería en producción

  • Eliminar todos los comentarios obvios que repiten lo que ya está escrito en el nombre de la variable.
  • Verificar tipos: reemplazar todos los any descuidados por tipos específicos de TypeScript.
  • Extraer fragmentos de código repetidos a una carpeta separada src/lib o src/utils.
  • Asegurarse de que todos los mensajes de error se registren realmente y no se oculten en bloques catch vacíos.

01. Limpieza de Código Antes del Lanzamiento

02. Identificación de Patrones de Código Sintético

03. Mejora de la Legibilidad del Código en Proyectos Existentes

/ Preguntas frecuentesSchema.org FAQPage

FAQ: Marcadores de Código Generado (AI Code Smells)

No es necesariamente un error que rompa el programa en este momento. Es un marcador de mala arquitectura o negligencia que indica que el código fue escrito apresuradamente y seguramente generará muchos bugs en el futuro del proyecto.
/ Enlaces internos
Todos los términos