Saltar al contenido
Framework Ecosystems LabsUn contrato, muchos ecosistemas, la misma prueba.

Parte 10 — Calidad, rendimiento y operación#

⬅️ Parte 9 · 🎓 Todas las clases · 📖 Glosario · Parte 11 ➡️

Lo que separa un proyecto que funciona en tu máquina de uno que funciona en producción.

Clases 124 a 137 · 14 en total · 0 construidas · 9 tecnologías en juego.

🧭 De qué va esta parte#

Catorce clases sobre lo que separa un proyecto que funciona en tu máquina de un sistema que alguien puede operar a las tres de la mañana.

Primero las pruebas: no como obligación moral sino como decisión de coste — qué se prueba rápido y aislado, qué exige una base real, y qué solo se puede comprobar de extremo a extremo. Después la observabilidad, que son tres cosas distintas y no una: registros, métricas y trazas responden a preguntas diferentes.

Y al final lo que decide si el sistema se puede desplegar sin miedo: configuración fuera del artefacto, salud y preparación bien distinguidas, arranque en frío medido, y la regla que ahorra más trabajo inútil que ninguna otra — medir antes de optimizar.

🎒 Qué da por sabido#

🎯 Qué sabrás hacer al terminarla#

🧵 Por qué en este orden#

Las seis primeras son las pruebas, de la más pequeña a la más cara: primera prueba, pirámide, dobles, integración con base real, extremo a extremo y contrato.

Las tres siguientes son la observabilidad: registros, métricas y trazas.

Las cinco últimas son la operación: salud, configuración, empaquetado, arranque en frío y medición.

📚 Las clases#

# Clase Qué resuelve Nivel Estado
124 La primera prueba Escribir una prueba que falle por la razón correcta. 🟢 introductorio 🚧 Esqueleto
125 La pirámide de pruebas Repartir el esfuerzo entre niveles según lo que cada uno detecta. 🟡 intermedio 🚧 Esqueleto
126 Dobles de prueba Elegir entre falso, sustituto y simulacro sabiendo qué acopla cada uno. 🟡 intermedio 🚧 Esqueleto
127 Integración con base real Probar contra el motor de verdad sin depender de una máquina concreta. 🟡 intermedio 🚧 Esqueleto
128 Pruebas de extremo a extremo Probar el recorrido completo sin que sea inestable. 🔴 avanzado 🚧 Esqueleto
129 Pruebas de contrato Verificar que cliente y servidor siguen entendiéndose. 🔴 avanzado 🚧 Esqueleto
130 Registro estructurado Emitir registros que una máquina pueda consultar. 🟡 intermedio 🚧 Esqueleto
131 Métricas Medir lo que importa: tasa, error y latencia. 🟡 intermedio 🚧 Esqueleto
132 Trazas Seguir una petición a través de varios procesos. 🔴 avanzado 🚧 Esqueleto
133 Salud y preparación Distinguir estar vivo de estar listo para recibir tráfico. 🟡 intermedio 🚧 Esqueleto
134 Configuración por entorno Un artefacto, varios entornos. 🟡 intermedio 🚧 Esqueleto
135 Empaquetado y despliegue Producir un artefacto reproducible. 🟡 intermedio 🚧 Esqueleto
136 Arranque en frío Medir lo que tarda en estar listo y por qué. 🔴 avanzado 🚧 Esqueleto
137 Medir antes de optimizar Encontrar el cuello real en lugar del sospechoso habitual. 🔴 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 (1), SolidJS (1), Svelte (1), Vue (1)
JVM Spring Boot (13), Quarkus (1)
.NET ASP.NET Core (13)
Node.js Express (13)
Python FastAPI (13)

📖 Las palabras que esta parte define#

Pirámide de pruebas · Doble de prueba · Prueba de contrato · Registro estructurado · Métrica · Traza · Salud y preparación · Empaquetado · Arranque en frío · Medir antes de optimizar

Todas, con su definición, en el glosario.

✅ Cómo se ejecuta una clase de esta parte#

node scripts/run-class.mjs 124

El 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#

La parte 11 es la última y la más difícil: sistemas que ya existen, migraciones que no pueden parar y decisiones que hay que defender.