Lección 00
Pensar como un programa defensivo
Comprende datos, decisiones, repeticiones y errores sin experiencia previa.
Antes de practicar
01 // Define la entrada y sus fallos
Un programa defensivo convierte datos en una decisión revisable. Describe el formato esperado, valida cada valor y decide qué hacer cuando no cumple. Si un número llega como texto, conviértelo sólo después de validarlo y trata el fallo de conversión como parte del diseño.
02 // Escribe reglas con alcance y contexto
Para detectar varios fallos de acceso, define la entidad, la ventana de tiempo y el umbral antes de recorrer eventos. Contar todo un archivo o alertar por cada fallo aislado mezcla situaciones distintas.
Ejemplo: varios fallos de la misma cuenta en una ventana corta justifican observación adicional. No prueban por sí solos una causa ni autorizan una acción irreversible.
03 // Limita el recorrido
Valida la raíz autorizada, las extensiones esperadas y cada ruta antes de abrirla. Una carpeta de laboratorio es un límite, no una invitación a recorrer el disco. Mantén separadas las fases de descubrir y corregir para que una ruta inesperada se reporte en lugar de modificarse.
04 // Haz visibles los errores esperados
Captura la excepción específica que sabes tratar, registra contexto y aplica una política clara: continuar, rechazar el lote o detenerse. No sustituyas una fecha inválida ni descartes la línea sin contarla.
Ejemplo: prueba la regla con un conjunto pequeño y reporta registros leídos, aceptados y rechazados. Que el programa termine sin una excepción no demuestra que clasificó bien; la salida debe explicar el criterio y permitir repetir la decisión con los mismos límites.