Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

JavaScript — Avanzado

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • JavaScript

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la 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.

  1. Explicar cómo el Event Loop ordena microtasks y macrotasks, y cómo las hidden classes del motor V8 afectan al rendimiento, estableciendo el marco conceptual necesario para tomar decisiones de optimización informadas.
  2. Identificar cuellos de botella de rendimiento y retenciones de memoria en una aplicación JavaScript usando Chrome DevTools, y aplicar las correcciones adecuadas —reestructuración de objetos, WeakRef, cleanup explícito— hasta lograr mejoras medibles y verificables.
  3. Diseñar un sistema de módulos ES reutilizables con separación de responsabilidades, lazy loading y tree shaking, seleccionando la estrategia de gestión de estado —Observer, Flux-like, Event Sourcing— más adecuada para un caso concreto y argumentando los trade-offs frente a las alternativas descartadas.
  4. Evaluar críticamente el trade-off entre herencia prototípica y composición funcional en un escenario de diseño real, justificando la elección con criterios de mantenibilidad, extensibilidad y rendimiento.
  5. Automatizar un pipeline de calidad de código que integre linting con reglas de complejidad, cobertura de tests configurable y análisis de bundle, verificando su ejecución completa en un entorno de integración continua sin intervención manual.

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.

  • Navegador Google Chrome en versión estable actualizada, con acceso a DevTools habilitado.
  • Node.js 20 LTS o superior instalado localmente.
  • Gestor de paquetes npm 10+ o pnpm 9+.
  • Editor de código con soporte ESLint (se recomienda VS Code con la extensión oficial de ESLint).
  • Acceso a un repositorio Git y a un sistema de CI —GitHub Actions, GitLab CI o equivalente— con permisos para configurar pipelines.
  • Conexión a internet estable para instalar dependencias y ejecutar los flujos de CI durante los ejercicios.

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.