Revisar código generado es leerlo antes de aceptarlo
Revisar código generado es leer, ejecutar y cuestionar lo que un asistente escribió antes de aceptarlo en tu proyecto. Quien acepta sin revisar firma un código que no entiende.
Una cooperativa agrícola de Murcia recibe de un asistente una función que calcula la media de las notas de un curso. Parece limpia. Quien revisa decide si entra.
Al final de esta lección
Nota
Puedo revisar código que no he escrito y señalar sus fallos.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Revisión | leer un cambio antes de aceptarlo | |
| Caso límite | un dato extremo que suele romper el código | una lista vacía |
| Función inventada | una llamada a algo que no existe | |
| Cambio de más | una modificación que nadie pidió | |
| Diff | la lista de líneas quitadas y añadidas |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Primero se lee, después se ejecuta
Antes de ejecutar nada, lee el código entero y pregúntate si lo entiendes. Si una línea no la entiendes, no la aceptes todavía.
Leer cuesta menos que depurar un fallo en producción. Y leer enseña: el código que no entiendes es el que más fallos esconde.
Ejemplo: cinco preguntas para cada revisión
| Pregunta | Qué mirar | Fallo que detecta |
|---|---|---|
| ¿Hace lo que pedí? | El resultado con un caso que conoces | Código que resuelve otro problema |
| ¿Existe lo que llama? | Cada función y cada módulo importado | Funciones inventadas |
| ¿Y con datos raros? | Vacío, cero, negativo, texto largo | Casos límite olvidados |
| ¿Tocó algo más? | El diff completo | Cambios de más |
| ¿Lo entiendo? | Cada línea, una a una | Código que nadie sabe mantener |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Ejecuta y prueba un caso raro
# Código que un asistente podría devolver para "la media de las notas".
def media(notas):
total = 0
for nota in notas:
total = total + nota
return total / len(notas)
print(media([7, 8, 9]))
# Quita el # de la línea siguiente y mira qué pasa con una lista vacía.
# print(media([]))
Ejecuta un caso conocido y uno raro
Con una lista de tres notas la función da 8,0 y parece correcta. Con una lista vacía, divide entre cero y el programa se detiene.
Un caso conocido te dice si calcula bien. Un caso raro te dice si aguanta. Haz las dos pruebas antes de aceptar el código.
Un error frecuente
Advertencia
Mucha gente cree que un código ordenado y bien comentado es correcto. El orden no prueba nada. Una función puede tener nombres claros y fallar con una lista vacía. Acepta el código cuando lo has leído y ejecutado con casos tuyos.
Orienta tu lectura antes de leer
Quien revisa un archivo ajeno empieza por su estructura: qué funciones tiene y de dónde importa. Así sabe por dónde entrar. Estas órdenes solo miran el programa de la cantina. Dónde está el defecto lo encuentras tú, leyendo.
Lista las funciones del programa
docker exec -w /home/node/project agent grep -n function shop.jsSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Mira qué importan las pruebas
docker exec -w /home/node/project agent grep -n require shop.test.jsSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.