
JavaScript Concurrency
Adam Boduch
- Editorial
- Packt
- Año
- 2015
- Páginas
- ~293
- Nivel
- Intermedio
De qué trata
Libro de Adam Boduch, publicado por Packt a finales de 2015, sobre cómo escribir código concurrente en JavaScript, tanto en el navegador como en Node.js, con las herramientas de ES2015 de la época. Está dirigido a desarrolladores de JavaScript con experiencia que quieren aplicaciones más eficientes, con mejor respuesta y más fáciles de mantener, y que necesitan entender qué ocurre realmente bajo el modelo de un solo hilo y el bucle de eventos.
El libro organiza el tema en torno a tres principios: paralelizar, sincronizar y conservar. Arranca con por qué importa la concurrencia en JavaScript y con el modelo de ejecución: la cola de tareas, los contextos de ejecución, los temporizadores y la respuesta a eventos del DOM. Después dedica capítulos a sincronizar con promesas, a la evaluación perezosa y las corrutinas con generadores, y a los Web Workers (dedicados y compartidos) para ejecutar trabajo en paralelo real. Luego aborda el paralelismo práctico con técnicas de programación funcional, cómo abstraer la concurrencia para que el código concurrente se lea como código normal, el modelo de E/S por eventos de Node.js y temas avanzados de concurrencia en Node, como los procesos hijo y los clústeres de procesos.
Combina explicaciones conceptuales con muchos ejemplos de código y cierra con un capítulo final en el que se construye una aplicación concurrente que reúne lo visto en el libro. Es valioso para entender a fondo el bucle de eventos y el razonamiento detrás de cada técnica. Conviene saber que es anterior a la adopción general de async/await, de SharedArrayBuffer y Atomics y del módulo worker_threads de Node.js, así que hay que completar esos temas con fuentes actuales.
- Concurrencia
- Event loop
- Modelo de ejecución
- Promesas
- Generadores
- Corrutinas
- Web Workers
- Paralelismo
- Programación funcional
- Node.js
- Clústeres de procesos
¿Cómo enseña?
Teoría + práctica
- ✗ Sin ejercicios
- ✓ Incluye proyectos
Proyectos
Aplicación concurrente final (capítulo 10)
Aplicación construida en el último capítulo que integra las técnicas del libro, como promesas, generadores, workers y E/S por eventos con Node.js, para aplicar los principios de paralelizar, sincronizar y conservar en un caso completo.

