M02L18Semana 5~3 h
L18 — Validación y código legible
~3 h · Semana 5
Validas entradas de comandos y aplicas Código limpio en nombres y tamaño de funciones.
Objetivo
Capa validacion/ para argumentos CLI y refactor de al menos 3 funciones con nombres que revelan intención.
Por qué importa
La CLI crece. Sin validación y nombres claros, el archivo principal se vuelve inmantenible.
Pasos
1. Validadores (50 min)
src/validacion/habito.ts:
import { err, ok, type Result } from "../tipos/resultado.js";
export function validarNombreHabito(raw: string): Result<string, string> {
const t = raw.trim();
if (t.length < 2) return err("el nombre debe tener al menos 2 caracteres");
if (t.length > 80) return err("el nombre es demasiado largo");
return ok(t);
}
Integra en add.
2. Lectura Código limpio (45 min)
Caps. 2–3: anota 5 reglas aplicables a tu CLI en projects/m02-habits/NOTAS-CC.md.
3. Refactor (60 min)
- Funciones ≤25 líneas donde sea razonable.
- Renombra variables de una letra salvo bucles triviales.
- Elimina duplicación entre
listy futurostats.
4. Comando done (25 min)
Esqueleto done <id> con validación de id existente.
Lectura de esta lección
| Fuente | Qué leer |
|---|---|
| Código limpio | Caps. 2–3 (ed. ES) |
| Catálogo | bibliografía |
| Catálogo | Bibliografía · M02 |
Hecho cuando
addusa validadorResult.NOTAS-CC.mdcon reglas propias.donemarca hábito o fecha (mínimo viable).
Errores comunes
- Validar solo en CLI y no en funciones de dominio.
- Refactor cosmético sin cambiar comportamiento testeable.
- Nombres en inglés mezclados con mensajes en español sin criterio (elige: código EN, UX ES está bien).