Parte 11 — Legado, migración y decisión#
El trabajo que de verdad se hace: entender lo que ya existe, cambiarlo sin apagarlo y decidir con criterio.
Clases 138 a 149 · 12 en total · 0 construidas · 14 tecnologías en juego.
🧭 De qué va esta parte#
Doce clases sobre el trabajo que ocupa la mayor parte de una carrera y casi nada de la formación: entender, cambiar y a veces abandonar sistemas que no escribiste.
Empieza por leer código ajeno sin romperlo, sigue por la técnica que hace posible migrar sin reescribir —la higuera estranguladora— y llega a las decisiones que hay que defender ante otras personas: cuándo migrar, cuándo no, qué framework elegir para un producto concreto y cómo se sale de uno.
Es el nivel experto del programa, y no por la tecnología. Es experto porque todas las respuestas son «depende», y hay que decir de qué — con un horizonte, un equipo y un riesgo declarados.
🎒 Qué da por sabido#
- Todo lo anterior. Esta parte no enseña mecanismos nuevos: enseña a decidir sobre los que ya conoces.
- Haber visto al menos un sistema que no escribiste tú.
🎯 Qué sabrás hacer al terminarla#
- Entrar en un sistema desconocido y construirte un mapa antes de tocar nada.
- Caracterizar el comportamiento actual con pruebas, para poder cambiar con red.
- Migrar de forma incremental con las dos versiones conviviendo detrás de una fachada.
- Hacer convivir dos frameworks en la misma página, y decir qué cuesta.
- Cambiar el esquema de datos sin cortar el servicio.
- Defender una decisión de framework con criterios declarados: producto, equipo, riesgo y horizonte.
- Reconocer cuándo no migrar, que es la respuesta correcta más veces de las que parece.
🧵 Por qué en este orden#
Las tres primeras son el método para entrar: leer, caracterizar y estrangular.
Las cuatro del medio son las técnicas: dos frameworks conviviendo, micro-frontends, migrar datos sin parar y un caso real completo.
Las cinco últimas son de juicio: cuándo no migrar, fin de vida y soporte, cómo se elige, cómo se abandona, y el proyecto integrador donde todo lo anterior se defiende.
📚 Las clases#
| # | Clase | Qué resuelve | Nivel | Estado |
|---|---|---|---|---|
| 138 | Leer un sistema que no escribiste | Orientarse en un código ajeno sin cambiarlo todavía. | 🟡 intermedio | 🚧 Esqueleto |
| 139 | Caracterizar con pruebas | Fijar el comportamiento actual antes de tocarlo. | 🔴 avanzado | 🚧 Esqueleto |
| 140 | La higuera estranguladora | Sustituir por partes con el sistema en marcha. | 🔴 avanzado | 🚧 Esqueleto |
| 141 | Dos frameworks conviviendo | Montar lo nuevo dentro de lo viejo sin reescribir. | 🔴 avanzado | 🚧 Esqueleto |
| 142 | Micro-frontends | Repartir una interfaz entre equipos, con sus costes. | 🔴 avanzado | 🚧 Esqueleto |
| 143 | Migrar datos sin parar | Cambiar el esquema con la aplicación en producción. | 🔴 avanzado | 🚧 Esqueleto |
| 144 | Un caso real de migración | Recorrer una migración completa con sus decisiones documentadas. | 🔴 avanzado | 🚧 Esqueleto |
| 145 | Cuándo no migrar | Reconocer cuándo la reescritura es el error. | 🟡 intermedio | 🚧 Esqueleto |
| 146 | Fin de vida y soporte | Leer las señales de que una pieza va a dejar de sostenerse. | 🟡 intermedio | 🚧 Esqueleto |
| 147 | Elegir framework para un producto | Decidir con criterio explícito y dejarlo escrito. | 🔴 avanzado | 🚧 Esqueleto |
| 148 | Cómo se abandona un framework | Diseñar la salida antes de necesitarla. | 🔴 avanzado | 🚧 Esqueleto |
| 149 | Proyecto integrador | Construir y defender un producto completo con las decisiones justificadas. | 🔴 avanzado | 🚧 Esqueleto |
🎬 Las tecnologías que aparecen#
Entre paréntesis, en cuántas clases de esta parte interviene cada una. Estar aquí no es una recomendación: es que el problema de esa clase existe de verdad para esa tecnología.
| Ecosistema | Tecnologías |
|---|---|
| JavaScript/TypeScript | React (3), Lit (2), Vue (2), Next.js (1), Prisma ORM (1), Svelte (1) |
| Python | FastAPI (9), SQLAlchemy (1) |
| JVM | Spring Boot (9), Hibernate ORM (1) |
| .NET | ASP.NET Core (8), Entity Framework Core (1) |
| Node.js | Express (8) |
| TypeScript | Angular (1) |
📖 Las palabras que esta parte define#
Prueba de caracterización · Higuera estranguladora · Micro-frontend · Migrar sin parar · Fin de vida
Todas, con su definición, en el glosario.
✅ Cómo se ejecuta una clase de esta parte#
node scripts/run-class.mjs 138El verificador arranca cada implementación, la somete a su contrato.json y declara cuáles omitió por no encontrar su cadena de herramientas. Si te faltan cadenas, node scripts/doctor.mjs dice cuáles y cómo se instalan.
➡️ Y después#
Aquí termina el programa de clases. El módulo 12 del currículo recoge el producto final, y los programas hermanos siguen desde otros ángulos: polyglot-programming-labs para los lenguajes, database-systems-labs para los datos y multi-cloud-engineering-program para el despliegue.