Pular para o conteúdo
Voltar às Trilhas Intermediário
JavaScript Moderno ES6+ & Assincronismo Avançado

JavaScript Moderno ES6+ & Assincronismo Avançado

Do Módulo 0 ao Projeto Final: closures, arrow functions, destructuring, arrays modernos, ES Modules, Event Loop, Promises, Async/Await, concorrência, resiliência, testes e Dashboard Logístico.

Capítulos 13
Progresso 0/24 aulas
Concluído 0%
🛠️
CAPÍTULO 1

Módulo 0 — Preparação e Diagnóstico

1 aulas

Instalação do Node.js, VS Code, DevTools, package.json e primeiro programa.

🧠
CAPÍTULO 2

Módulo 1 — Funções, Escopo e Closures

2 aulas

let, const, hoisting, default params, callbacks, escopo léxico e closures.

🔒

1.1 let, const, Hoisting & Escopo Léxico

let e const possuem escopo de bloco e permanecem na Temporal Dead Zone até a declaração. var possui escopo de função com hoisting descontrolado.

Bloqueada
🔒

1.2 Closures & Projeto: Biblioteca de Validações

Construa uma fábrica de validadores como criarValidadorTamanho(min, max) que retorna uma função interna presa ao escopo léxico criador.

Bloqueada
🏹
CAPÍTULO 3

Módulo 2 — Arrow Functions

2 aulas

Sintaxe completa, retorno implícito, arrow functions assíncronas e escopo do this.

🔒

2.1 Sintaxe, Retornos Implícitos & Lexical "this"

Arrow functions capturam o "this" do contexto externo. Evite em métodos de objetos literais e construtores.

Bloqueada
🔒

2.2 Projeto: Transformador de Pedidos

Implemente pipeline de cálculo de frete e impostos usando arrow functions encadeadas com retorno implícito de objetos ({ ...pedido, total }).

Bloqueada
📦
CAPÍTULO 4

Módulo 3 — Desestruturação, Rest e Spread

2 aulas

Destructuring de objetos/arrays, rest parameters, spread e structuredClone.

🔒

3.1 Destructuring, Spread vs structuredClone()

Spread (...) realiza cópia rasa. Para clonar estruturas profundamente sem manter referências no Heap, use structuredClone().

Bloqueada
🔒

3.2 Projeto: Normalizador de Respostas de API

Normalize campos brutos de APIs externas desestruturando objetos aninhados com fallbacks e renomeação de propriedades.

Bloqueada
📊
CAPÍTULO 5

Módulo 4 — Arrays e Objetos Modernos

2 aulas

map, filter, reduce, find, findIndex, toSorted, flatMap, ?. e ??

🔒

4.1 Optional Chaining (?.) & Nullish Coalescing (??)

?. evita TypeError em caminhos nulos. ?? fornece padrão apenas para null e undefined (preservando 0 e "").

Bloqueada
🔒

4.2 Projeto: Relatório de Vendas e Operações

Gere relatórios ordenados de vendas com imutabilidade usando toSorted() e reduce() para totais agregados.

Bloqueada
📁
CAPÍTULO 6

Módulo 5 — Módulos ES6

2 aulas

export, import, nomeados, default, dynamic import e top-level await.

🔒

5.1 ES Modules, Importação Dinâmica & Top-Level Await

Análise estática com import/export, resolução circular e carregamento assíncrono via import() dinâmico.

Bloqueada
🔒

5.2 Projeto: Aplicação Dividida em Módulos

Divida uma aplicação em diretórios de serviços, formatadores e validadores exportados e importados de forma limpa.

Bloqueada
🔄
CAPÍTULO 7

Módulo 6 — Event Loop

2 aulas

Call Stack, Web APIs, Task Queue, Microtask Queue, Promises vs timers e CPU vs I/O bound.

🔒

6.1 Call Stack, Microtasks & Macrotasks

A Microtask Queue (Promises, queueMicrotask) tem prioridade absoluta e é esvaziada antes de qualquer Macrotask (setTimeout).

Bloqueada
🔒

6.2 Projeto: Laboratório de Ordem de Execução

Valide experimentalmente a ordem de saída no console combinando código síncrono, microtasks e timers.

Bloqueada
CAPÍTULO 8

Módulo 7 — Promises

2 aulas

Pending, fulfilled, rejected, resolve, reject, .then(), .catch(), .finally() e promisify.

🔒

7.1 Estados da Promise & Encadeamento

Uma vez settled (fulfilled ou rejected), o estado da Promise não se altera. Erros propagam até o primeiro .catch().

Bloqueada
🔒

7.2 Projeto: Cliente Assíncrono Simulado

Simule requisições de rede com delays e encadeamento de dados de resposta tratando exceções globalmente.

Bloqueada
CAPÍTULO 9

Módulo 8 — Async/Await

2 aulas

Funções async, await, exceções, try/catch/finally, sequencial vs concorrente e loops assíncronos.

🔒

8.1 Operador Await & Cuidado com forEach(async)

forEach não aguarda código async! Use for...of para iteração sequencial ou Promise.all(map) para execução paralela.

Bloqueada
🔒

8.2 Projeto: Consulta de Pedidos em uma API

Implemente serviço de busca async que consome endpoints JSON com tratamento de erros em blocos try/catch.

Bloqueada
🔀
CAPÍTULO 10

Módulo 9 — Concorrência Assíncrona

2 aulas

Promise.all, allSettled, race, any, falha rápida, batching e limitação de concorrência.

🔒

9.1 Promise.all vs Promise.allSettled vs Race vs Any

Promise.all para falha rápida. Promise.allSettled para tolerância a erros parciais. Promise.race para timeout de resposta.

Bloqueada
🔒

9.2 Projeto: Agregador de Múltiplas APIs

Consulte APIs de frete e estoque em lote paralelo tratando rejeições parciais sem interromper a tela.

Bloqueada
🛡️
CAPÍTULO 11

Módulo 10 — Resiliência Assíncrona

2 aulas

Timeout, AbortController, cancelamento, Retry, Backoff exponencial, Jitter e Circuit Breaker.

🔒

10.1 Cancelamento com AbortController & Retry com Backoff + Jitter

AbortController cancela requisições em andamento. Retry com backoff exponencial e jitter randômico evita picos de acessos após queda de servidor.

Bloqueada
🔒

10.2 Projeto: Cliente HTTP Resiliente

Construa cliente HTTP que interrompe novas requisições (Circuit Breaker OPEN) quando a taxa de falhas do servidor ultrapassa o limite.

Bloqueada
🧪
CAPÍTULO 12

Módulo 11 — Testes Assíncronos

2 aulas

Testes de Promises, Mocks/Stubs, Fake timers, Node Test Runner e Vitest.

🔒

11.1 Testando Rejeições, Timeouts & Fake Timers

Use assert.rejects() e Mocks/Fake Timers para simular delays de rede e falhas sem tornar a suíte de testes lenta.

Bloqueada
🔒

11.2 Projeto: Suíte Automatizada do Cliente HTTP

Escreva testes automatizados para validar cancelamento via AbortController, contagem de retentativas e circuito aberto.

Bloqueada
🏆
CAPÍTULO 13

Módulo 12 — Projeto Final

1 aulas

Construção do Dashboard de Operações Logísticas integrando todos os 12 módulos anteriores.

🔒

12.1 Projeto Final: Dashboard de Operações Logísticas

Aprenda requisitos integrados do dashboard logístico com conceitos práticos e exercícios aplicados.

Bloqueada