M06L16Semana 4~5 h
L16 — Logging, diagnóstico y contratos de error
~5 h · Semana 4
Cierras semana 4: observabilidad mínima sin spam. Logs en el borde; dominio limpio.
Objetivo
Introducir interfaz Logger inyectable; registrar errores y eventos de negocio en adaptadores CLI /tests fake.
Pasos
1. Diseño (45 min)
export interface Logger {
info(msg: string, meta?: Record<string, unknown>): void;
error(msg: string, meta?: Record<string, unknown>): void;
}
2. Implementaciones (60 min)
ConsoleLogger, NoopLogger para tests.
3. Cableado (90 min)
Solo capa aplicación/CLI loguea Result err con meta (id, código).
4. Tests (60 min)
Fake logger cuenta invocaciones en escenarios de fallo.
5. Documento operación (45 min)
OPERACION.md: qué se loguea, qué no (PII ).
6. Commit (15 min)
feat(m06): logging en frontera semana 4
Hecho cuando
- Dominio sin
console.logsuelto. - Logger mockeable en tests.
- OPERACION.md breve.
Errores comunes
- Log en cada línea.
- Meta con objetos enormes.