
You Don't Know JS. Async & Performance
Kyle Simpson
- Editorial
- O'Reilly
- Año
- 2015
- Páginas
- ~172
- Nivel
- Intermedio
De qué trata
Quinto libro de la primera edición de You Don't Know JS, publicado por O'Reilly en 2015, en el que Kyle Simpson se dedica a la asincronía en JavaScript y al rendimiento de los programas. Trabaja con ES5 y las novedades de ES6 (Promises y generadores) recién estandarizadas. Es para desarrolladores intermedios o avanzados que ya dominan funciones, closures y el uso habitual de callbacks, y quieren comprender a fondo cómo se coordina el código que ocurre «ahora y después».
Empieza explicando el event loop, la concurrencia y la diferencia entre paralelismo y asincronía, y analiza los problemas de los callbacks: el «callback hell» y, sobre todo, la inversión de control y la falta de confianza en el código de terceros. Luego desarrolla las Promises (resolución, encadenamiento, manejo de errores, Promise.all y Promise.race, patrones y limitaciones) y los generadores, mostrando cómo combinarlos para escribir código asíncrono de apariencia síncrona, precursor directo de async/await. La parte de rendimiento trata Web Workers, SIMD, asm.js, benchmarking correcto con Benchmark.js y jsPerf, microoptimizaciones y optimización de llamadas de cola (TCO). Los apéndices presentan asynquence, la librería del propio autor, y patrones asíncronos avanzados como observables, CSP y corrutinas.
No construye aplicaciones; aprende con fragmentos de código bien comentados y abundantes razonamientos. Su valor está en el modelo mental: después de leerlo se entiende por qué existen las Promises y cómo funciona por dentro async/await. Conviene saber que es anterior a la adopción masiva de async/await (ES2017), que solo se menciona como algo futuro, y que partes como SIMD.js o asm.js quedaron obsoletas frente a WebAssembly. Para practicar asincronía moderna conviene complementarlo con material actual.
- Event loop
- Concurrencia
- Callbacks
- Inversión de control
- Promises
- Generadores
- Web Workers
- Benchmarking
- Benchmark.js
- Optimización de llamadas de cola
- asynquence
¿Cómo enseña?
Teórico
- ✗ Sin ejercicios
- ✗ Sin proyectos

