Refactorizar un script monolítico a módulos reutilizables
Visión general
De qué trata este proyecto.
Lee el script (proporcionado), entiéndelo y traza un mapa de qué hace cada parte. Refactoriza en 5 módulos claros: io (lectura CSV), tax (cálculo de impuestos por país), invoice (generación PDF), email (envío) y main (orquestación). Cada módulo expone una interfaz pequeña y no comparte estado mutable. Aplica refactor en pasos pequeños y commits atómicos (sigue el patrón "refactor en pequeños pasos" de Martin Fowler). Añade tests para cada módulo. Demuestra extensibilidad añadiendo soporte para un país nuevo (Brasil) con cambios solo en el módulo tax. Entrega el código refactorizado, el log de commits, los tests, un informe de 4 páginas sobre las decisiones de refactor y un análisis honesto de qué quedó pendiente.
El Briefing
Lo que harás y lo que demostrarás.
Refactorizar un script monolítico de 900 líneas en una arquitectura modular extensible, con tests, demostrando la extensibilidad al añadir un país nuevo solo en un módulo.
Earning criteria — what you'll demonstrate
- Aplicar refactor en pasos pequeños y commits atómicos
- Separar responsabilidades sin reescribir el comportamiento
- Añadir tests a código heredado sin perder funcionalidad
- Demostrar extensibilidad con un cambio real (no hipotético)
Encaje académico
Dónde encaja esto en tus estudios.
Afina las mismas habilidades que tu titulación espera de ti.
Habilidades
Habilidades que demostrarás.
Cada una aparece en tu credencial verificada.
Carreras
Roles para los que esto te prepara.
Títulos reales. Puentes de habilidades reales. Elige el que más se acerque a tu trayectoria.
Trayectorias profesionales que esto construye
Roles canónicosIngeniero de Software
Refactorizar código heredado sin romperlo y demostrar extensibilidad con un cambio real es exactamente la habilidad que diferencia a una persona ingeniera junior empleable de una recién egresada en abstracto.
Este proyecto afina
- refactoring
- modular-programs
- software-design
Ingeniero de Backend
Backend que sabe refactorizar en pasos pequeños mantiene velocidad sin paralizar al equipo y sin cargo-cult de patrones.
Este proyecto afina
- refactoring
- modular-programs
- python