Lección 18 de 24· M02

Hechas: 0/24(0%)

M02L18Semana 5~3 h

Ficha M02

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 (interfaz de línea de comandos) 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 list y futuro stats.

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

  1. add usa validador Result.
  2. NOTAS-CC.md con reglas propias.
  3. done marca 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 (experiencia de usuario) ES está bien).

Siguiente

L19 — Vitest: primeros tests

←→