GUÍA PRÁCTICA · JAVASCRIPT

Cómo revisar código con IA
y comprobar la propuesta.

Practica con una función ficticia que calcula una media. Define qué debe hacer, pide motivos para cada cambio y comprueba la propuesta antes de incorporarla a tu código.

1. Fija el contrato antes de pedir cambios

Este fragmento es ficticio y no procede de una aplicación real. Léelo antes de buscar una solución:

function media(xs) {
  return xs.reduce((a, b) => a + b, 0) / xs.length;
}

Contrato deseado: calcular la media aritmética de un array denso de números finitos. Un array denso tiene un valor en cada posición, sin huecos.

  • El array vacío debe devolver null.
  • Si la entrada no es un array, contiene un valor que no sea un número finito o tiene huecos, debe lanzar TypeError.
  • La función debe conservar la entrada. Los ceros y los números negativos son válidos.

Fija también los criterios de comprobación del paso 4 antes de mirar cualquier propuesta. Así podrás juzgarla con los mismos requisitos.

2. Pide motivos y una propuesta delimitada

  1. Abre la ficha de revisión de código y lee los requisitos.
  2. En Prompt original, pulsa «Copiar prompt» y pégalo en tu asistente. La ficha conserva la procedencia de Code Reviewer, de prompts.chat, su revisión y licencia CC0-1.0.
  3. Añade el fragmento y el contrato del paso 1. Indica que es un caso ficticio en JavaScript, sin dependencias, y pide la respuesta en español.
  4. Pide comentarios con sus motivos y una única función de sustitución completa llamada media, en un bloque JavaScript. Solicita que explique sus límites, sin ejecutar nada ni añadir archivos, importaciones o dependencias.

También puedes pedir directamente «Revisa el código siguiente, explica tus observaciones y propón una mejora justificada», con el mismo fragmento y contrato. Conserva la primera respuesta completa para poder revisarla.

3. Inspecciona antes de ejecutar

Empieza por localizar lo que falta en el fragmento inicial. Al recibir un array vacío, divide cero entre cero y obtiene NaN. No comprueba números finitos y reduce omite los huecos. Que una entrada provoque un error incidental no demuestra una validación explícita.

  • Entradas: busca validación de array, de números finitos y de cada posición propia del array.
  • Casos límite: localiza el tratamiento del vacío, los ceros, los negativos y los valores muy grandes.
  • Conservación: comprueba si la propuesta escribe sobre la entrada o la reordena.
  • Explicación: relaciona cada motivo con una línea o decisión del código. Una explicación convincente puede acompañar a una implementación incorrecta.

Revisa el código completo antes de ejecutarlo con los permisos de tu entorno. Comprueba también su complejidad: una solución más sofisticada necesita la misma revisión.

4. Contrasta la propuesta con los criterios

Esta tabla define resultados esperados del ejercicio. Si decides ejecutar pruebas, convierte cada fila en una comprobación de tu entorno y conserva el resultado real, incluidos los fallos. Anota la versión del entorno y el código exacto que probaste.

Trece comprobaciones para la función media
EntradaResultado esperado
[]Devuelve null.
[2, 4, 6]Devuelve 4.
[0, 0]Devuelve 0.
[-4, 0, 4]Devuelve 0.
[1, 2]Devuelve 1.5.
[0, 2, 4]Devuelve 2 y conserva la entrada intacta.
nullLanza TypeError.
{ 0: 2, length: 1 }Lanza TypeError.
['2', 4]Lanza TypeError.
[2, NaN]Lanza TypeError.
[2, Infinity]Lanza TypeError.
[1, , 3]Lanza TypeError.
[0.1, 0.2]Resultado próximo a 0.15, con tolerancia absoluta de 1e-12.

Un caso adicional, fuera de los trece: para [Number.MAX_VALUE, Number.MAX_VALUE], espera Number.MAX_VALUE. La suma directa del fragmento inicial se desborda a Infinity; comprueba cómo lo trata la propuesta.

Superar ese caso extra no cubre toda la aritmética posible. Con Number debes considerar redondeo, cancelación y dependencia del orden. Los arrays con getters o proxies pueden tener efectos al leerlos; este ejercicio parte de arrays ordinarios.

5. Decide con los resultados a la vista

  • Si falla un requisito: conserva el caso y el resultado, explica la diferencia y revisa la propuesta antes de adoptarla.
  • Si supera tus pruebas: considérala candidata para pruebas propias del producto. Revisa las entradas reales autorizadas, los requisitos numéricos y el coste de mantener la solución.
  • Si solo has leído el ejercicio: anota qué has inspeccionado y qué queda por ejecutar. Mantén esa diferencia al comunicar tu decisión.

Un conjunto de casos no garantiza corrección general ni seguridad. Esta guía no demuestra una ventaja del prompt frente a una petición directa, ahorro de tiempo ni compatibilidad con Codex, Gemini o Claude. También puedes revisar el código y escribir pruebas sin IA.

Abrir el prompt original