Concorrência em JavaScript (Node.js): assincronicidade, threads, paralelismo
Concorrência em JavaScript (Node.js): assincronicidade, threads, paralelismo
Resumo:
O livro «Concorrência em JavaScript (Node.js)» é um guia prático para criar aplicações de alto desempenho, responsivas e escaláveis na plataforma Node.js. No mundo moderno do desenvolvimento web, a velocidade e a eficiência do código do servidor impactam diretamente a experiência do usuário e o custo da infraestrutura. Este livro ajudará você a dominar todos os conceitos-chave da programação concorrente, desde os fundamentos da assincronicidade até técnicas avançadas de multithreading.
Para quem é este livro:
- Desenvolvedores JavaScript que estão migrando para o lado do servidor com Node.js;
- Engenheiros backend que desejam aprofundar seus conhecimentos em programação assíncrona;
- Desenvolvedores que enfrentam problemas de desempenho e bloqueios em Node.js;
- Todos que desejam entender como o Event Loop funciona e como utilizar os recursos do sistema de forma eficiente.
O que você aprenderá com este livro:
- Como o Event Loop funciona no Node.js e suas fases (timers, callbacks de I/O, idle, poll, check, close);
- A diferença entre execução síncrona, assíncrona e concorrente de código;
- Compreensão aprofundada de promises (Promise), cadeias then/catch, métodos estáticos (Promise.all, Promise.race, Promise.allSettled);
- Uso correto de async/await para escrever código assíncrono legível;
- Tratamento de erros em funções assíncronas e promises;
- Trabalho com streams para processar grandes volumes de dados;
- Multithreading com Worker Threads: criação de workers, transferência de dados, memória compartilhada (SharedArrayBuffer);
- Clusterização de aplicações Node.js para maximizar o uso de todos os núcleos da CPU;
- Padrões de design para aplicações concorrentes: Producer-Consumer, Pub/Sub, Pipeline;
- Perfilamento e depuração de código assíncrono, busca por vazamentos de memória e bloqueios;
- Segurança em aplicações multithread: evitando condições de corrida (race conditions) e deadlocks.
O livro é estruturado do simples ao complexo: cada capítulo contém uma base teórica, exemplos de código claros e exercícios práticos para fixação do conteúdo. Você aprenderá não apenas a escrever código assíncrono, mas também a entender como o Node.js gerencia tarefas internamente.
Uma atenção especial é dada à comparação da concorrência em Node.js com outras abordagens (multithreading em C++/Java, assincronicidade em Python asyncio). Isso ajudará você a ter uma visão geral e a escolher as ferramentas certas para cada tarefa.
Após a leitura do livro, você será capaz de criar servidores web de alta carga, aplicações de chat, processadores de arquivos e qualquer outro sistema que exija uso eficiente de recursos de CPU e I/O. Você deixará de temer o "callback hell" e aprenderá a projetar arquiteturas resistentes a bloqueios.
O livro é adequado tanto para desenvolvedores iniciantes com conhecimentos básicos de JavaScript quanto para engenheiros experientes que desejam sistematizar seus conhecimentos sobre concorrência em Node.js.