Parte 9 — Ingeniería de software políglota

⏮️ Parte 8 · ⬅️ Programa · 📚 Índice · ⏭️ Parte 10

16 clases · rango 139–154 · clases de código · nivel avanzado · ~40 h (cronograma)

🧭 Que funcione, que se construya igual siempre, que llegue a producción y que se pueda cambiar.


🧭 De qué trata esta parte

Escribir código que funciona hoy en tu máquina es la parte fácil. Esta parte trata todo lo demás: pruebas, depuración, observabilidad, dependencias, builds reproducibles, control de versiones, revisión, CI, despliegue, diseño, refactorización, patrones, rendimiento, seguridad y deuda técnica — cada práctica comparada entre los diez lenguajes.

El hilo conductor es la evidencia. Cada práctica responde a una pregunta comprobable: ¿cómo sé que funciona? ¿cómo sé que la build de hoy es la de ayer? ¿cómo sé qué está pasando en producción? ¿cómo sé que este refactor no rompió nada? Las herramientas cambian de nombre en cada lenguaje; las preguntas no.

El repositorio que estás leyendo es su propio caso de estudio: el verificador de equivalencia es literalmente una prueba de integración entre diez lenguajes, y su CI orquesta siete toolchains. Cuando la clase 147 habla de integración continua multi-lenguaje, habla de un problema que este repo tuvo que resolver de verdad.

🎒 Qué necesitas traer

Las Partes 2 y 5–8. Las herramientas de la Parte 2 (pruebas, paquetes, formateadores) se dan aquí por instaladas y comprendidas.

🎯 Qué sabrás hacer al terminar

Resultados comprobables: si no puedes hacerlos, la parte no está cerrada.

  1. Escribir pruebas unitarias y de integración en los diez lenguajes del núcleo.
  2. Diagnosticar con depurador y con registro estructurado, y saber cuándo toca cada uno.
  3. Fijar dependencias con lockfile y explicar por qué una build sin ellos no es reproducible.
  4. Montar una CI que valide varios lenguajes en paralelo sin duplicar la lógica.
  5. Refactorizar apoyándote en pruebas y argumentar por qué el comportamiento no cambió.
  6. Perfilar antes de optimizar y defender la decisión con datos en vez de con intuición.

🗺️ El recorrido, clase a clase

Las clases están agrupadas en bloques por la razón que las une. El orden es secuencial: cada una asume la anterior.

🔹 Comprobar que funciona · clases 139–142

Pruebas unitarias y de integración, depuradores y observabilidad en producción.

🔹 Que se construya igual siempre · clases 143–145

Dependencias con lockfile, builds reproducibles y control de versiones políglota.

🔹 Que llegue a producción · clases 146–148

Revisión de código, integración continua multi-lenguaje, entrega y despliegue.

🔹 Que se pueda cambiar · clases 149–151

Diseño y arquitectura, refactorización segura y patrones comparados entre lenguajes.

🔹 Que aguante · clases 152–154

Rendimiento medido, seguridad desde la primera línea y deuda técnica gestionada.

⚠️ Los malentendidos que esta parte corrige

Se suele creer Lo que ocurre en realidad
«Las pruebas son para proyectos grandes.» Son lo que permite cambiar el código sin miedo. En un proyecto pequeño el miedo simplemente se nota antes.
«Refactorizar es mejorar el código.» Es cambiar la estructura sin alterar el comportamiento observable. Si el comportamiento cambia, es otra cosa y necesita otras precauciones.
«Optimizo esto que se ve lento.» «Measure, don't guess»: el perfilador casi siempre señala un sitio distinto al que habrías tocado.

🧪 Cómo estudiar esta parte

  1. Lee el modelo y el pseudocódigo primero. Si entiendes el algoritmo neutral, las diez implementaciones son diez traducciones, no diez problemas.
  2. Lee las diez implementaciones, no solo la de tu lenguaje. El aprendizaje está en el contraste: ahí se distingue lo esencial del accidente sintáctico.
  3. Ejecuta el verificador (python scripts/verificar_equivalencia.py NNN) y comprueba tú mismo que coinciden. Fuerza después un caso límite y observa quién se rompe primero.
  4. Lee primos.md para ver el mismo programa en la familia de cada lenguaje: es donde el concepto deja de estar atado a diez nombres concretos.
  5. Haz el reto de transferencia. Portarlo a un lenguaje que no dominas es la única prueba real de que aprendiste el concepto y no la sintaxis.

📚 Fuentes de referencia de esta parte

Cada clase cita estos libros en su sección de referencias. No se reproduce su contenido: la redacción es original.

🔗 Qué abre esta parte

Con el oficio cubierto, la Parte 10 aborda lo que ningún curso de un solo lenguaje puede enseñar: qué ocurre en la frontera entre dos.


⏮️ Parte 8 · ⬅️ Programa · 📚 Índice · ⏭️ Parte 10