Skills que aprenderás
Convocatorias
No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.
Recursos
No hay recursos disponibles todavía para esta convocatoria
Dirigido a desarrolladoras y desarrolladores con dominio sólido de JavaScript moderno que buscan operar al nivel de las decisiones de arquitectura, rendimiento y calidad de código que caracterizan a los equipos de ingeniería de alto rendimiento. A lo largo de las 8 horas del curso, la persona participante explorará el funcionamiento interno del motor V8 y del Event Loop para anticipar y controlar el comportamiento de sus programas; diseñará sistemas de módulos ES con lazy loading y tree shaking verificable; diagnosticará y resolverá memory leaks en SPAs de larga duración usando el panel Memory de Chrome DevTools; evaluará críticamente las estrategias de diseño orientado a objetos frente a la composición funcional; y automatizará un pipeline de calidad integrado en CI que combine linting, testing con cobertura mínima y análisis de bundle. Al finalizar, la persona será capaz de tomar decisiones de diseño justificadas con criterios medibles y de entregar código JavaScript optimizado, mantenible y preparado para entornos de producción exigentes.
Internals del motor V8 y Event Loop. El bloque abre con el modelo de ejecución profundo de JavaScript: se estudia cómo V8 compila y optimiza el código en tiempo de ejecución mediante hidden classes y el mecanismo de deoptimización, y cómo el Event Loop coordina la cola de microtasks —promesas, queueMicrotask— con las macrotasks —setTimeout, I/O— para determinar el orden de ejecución. Las participantes trabajan con escenarios de operaciones mixtas instrumentados con código propio y el flag --trace-opt, de manera que puedan predecir y verificar el comportamiento antes de cualquier intervención de optimización.
Diagnóstico y corrección de problemas de rendimiento y memoria. Se aborda el uso avanzado de Chrome DevTools como herramienta de diagnóstico: profiling en el panel Performance para localizar cuellos de botella con métricas antes/después, y el panel Memory para identificar el tipo de retención —closures, event listeners huérfanos, detached nodes— en aplicaciones SPA de larga duración. La persona aprende a seleccionar y aplicar la corrección precisa en cada caso: WeakRef, WeakMap, cleanup explícito de listeners o reestructuración de objetos para estabilizar las hidden classes, siempre con evidencia cuantitativa del impacto.
Arquitectura de módulos ES y gestión de estado sin framework. Este bloque cubre el diseño de sistemas de módulos reutilizables que aprovechen los mecanismos estándar de ES Modules: importaciones dinámicas para lazy loading, y estructura de exportaciones que permita tree shaking verificable en el bundle final. Se complementa con el diseño de soluciones de estado complejo en JavaScript puro, comparando patrones Observer, Flux-like y Event Sourcing mediante un caso práctico en el que se documenta explícitamente qué alternativas se descartan y por qué.
Estrategias de diseño: herencia prototípica vs. composición funcional. Se dedica un espacio específico a la toma de decisiones de diseño orientado a objetos, confrontando la herencia basada en prototipos con la composición de funciones puras y mixins. El análisis se realiza sobre un caso concreto que obliga a razonar con criterios de mantenibilidad a largo plazo, facilidad de extensión y coste de rendimiento, produciendo una argumentación documentada de la elección.
Pipeline de calidad automatizado en CI. El curso cierra con la construcción de un pipeline reproducible que encadena ESLint —con reglas de complejidad ciclomática configurables—, una suite de tests con umbral de cobertura ajustable y un análisis de bundle que detecte regresiones de tamaño. Se configura la integración en un sistema de CI para que el pipeline se ejecute sin intervención manual y bloquee el merge si algún umbral no se cumple, poniendo en práctica los conceptos de arquitectura y calidad trabajados en los bloques anteriores.
Para aprovechar este curso la persona debe manejar con fluidez JavaScript ES2020+, incluyendo el modelo de asincronía basado en Promises y async/await, el sistema de módulos ES, la cadena de prototipos y el uso básico de Chrome DevTools. Estos contenidos se cubren en el curso JJS02 (JavaScript — Intermedio), prerrequisito directo de esta formación. Se recomienda también familiaridad con algún entorno de testing —Jest, Vitest o similar— y haber ejecutado al menos una build con un bundler moderno como Vite, Rollup o webpack.