JavaScript Avançado: Padrões de Design e Performance
- Nível: Avançado
- Módulos: 9
- Aulas: 25
- Tempo de leitura: 13h 50min
- Tecnologias: JavaScript
- Preço: Gratuito
Código do curso: github.com/johnpires/js-avancado-projeto-final
Este curso é destinado a desenvolvedores JavaScript que já dominam os fundamentos e os recursos intermediários da linguagem e desejam dar o próximo passo rumo à excelência técnica. Aqui você vai mergulhar nos padrões de design clássicos e modernos aplicados ao JavaScript, entendendo como arquitetar soluções robustas, reutilizáveis e de fácil manutenção. Você aprenderá a identificar problemas recorrentes no desenvolvimento de software e a aplicar os padrões mais adequados para cada situação, elevando a qualidade do seu código ao nível profissional.
Além dos padrões de design, o curso aborda temas avançados como programação funcional, metaprogramação com Proxy, Reflect e Symbols, técnicas de otimização de performance no V8 engine, testes avançados com Jest e Vitest, e o uso de Web APIs modernas. Cada tópico é abordado com profundidade, exemplos do mundo real e análise crítica das trade-offs envolvidas em cada decisão de design.
O curso é finalizado com um projeto prático: a construção de um sistema de gerenciamento de estado personalizado, semelhante ao Redux, implementando os padrões aprendidos ao longo do curso. Ao concluir, você estará preparado para liderar decisões de arquitetura frontend e backend, revisar código com visão sistêmica e contribuir para projetos de grande escala.
O que você vai aprender
Ao final deste curso, você será capaz de:
- Identificar e aplicar padrões de design criacionais, estruturais e comportamentais em projetos JavaScript reais
- Arquitetar soluções de software usando composição, abstrações e princípios SOLID
- Escrever código funcional avançado usando currying, composição de funções e memoização
- Utilizar Proxy, Reflect e Symbol para metaprogramação e criação de APIs elegantes
- Otimizar performance de aplicações JavaScript analisando o comportamento do engine V8
- Implementar suítes de testes avançadas com mocks, spies e testes de integração
- Utilizar Web APIs modernas como IntersectionObserver, Web Workers e Service Workers
- Construir um sistema de state management personalizado do zero
- Fazer revisões de código com foco em arquitetura, performance e segurança
Pré-requisitos
Este curso exige sólido conhecimento de JavaScript intermediário: closures, Promises, async/await, classes ES6, módulos, manipulação de arrays/objetos, e experiência prática com pelo menos um framework moderno (React, Vue ou Node.js). Espera-se que o aluno tenha pelo menos 1-2 anos de experiência prática com JavaScript e esteja confortável lendo e escrevendo código assíncrono complexo.
Conteúdo do curso
Módulo 1: Padrões de Design Criacionais
Aprenda os padrões criacionais — Factory, Singleton, Builder e Prototype — e entenda quando e como aplicá-los para criar objetos de forma flexível e desacoplada.
- Factory Pattern: Criação Desacoplada de Objetos (35 min)
- Singleton Pattern: Instância Única Global (30 min)
- Builder Pattern: Construção Fluente de Objetos Complexos (35 min)
- Prototype Pattern: Clonagem e Herança Prototípica (30 min)
Módulo 2: Padrões de Design Estruturais
Aprenda os padrões Decorator, Proxy e Facade para compor objetos de forma flexível, controlar acesso e simplificar interfaces complexas.
- Decorator Pattern: Adicionando Comportamentos Dinamicamente (35 min)
- Proxy Pattern: Interceptando e Controlando Acesso (35 min)
- Facade Pattern: Simplificando Interfaces Complexas (30 min)
Módulo 3: Padrões de Design Comportamentais
Domine os padrões Observer, Strategy e Command para gerenciar comunicacao entre objetos, algoritmos intercambiáveis e operacoes reversíveis.
- Observer Pattern: Comunicação Baseada em Eventos (35 min)
- Strategy Pattern: Algoritmos Intercambiáveis (30 min)
- Command Pattern: Operações Encapsuladas e Reversíveis (35 min)
Módulo 4: Programação Funcional Avançada
Domine currying, composicao de funcoes, funcoes de alta ordem e monads para escrever código funcional expressivo, seguro e reutilizável.
- Currying e Aplicação Parcial (35 min)
- Composição Funcional e Programação Funcional Avançada (35 min)
Módulo 5: Metaprogramacao: Proxy, Reflect e Symbol
Explore o poder da metaprogramacao em JavaScript com Proxy, Reflect e Symbol para criar DSLs, interceptores e APIs elegantes.
- Symbol e Protocolos Internos do JavaScript (30 min)
- Reflect e Proxy Avancados: Metaprogramação Completa (35 min)
Módulo 6: Otimizacao de Performance no JavaScript
Aprenda a identificar e corrigir gargalos de performance analisando o V8 engine, gerenciando memoria e aplicando tecnicas avancadas de otimizacao.
- V8 Engine: JIT, Shapes e Otimizacoes de Memoria (35 min)
- Virtualizacao, Web Workers e Estrategias de Cache (35 min)
Módulo 7: Testes Avançados com JavaScript
Domine Jest com mocks, spies, snapshots e testes assíncronos para garantir qualidade no código JavaScript avançado.
- Testes Unitários e de Integração com Jest (35 min)
- Mocks, Stubs e Spies: Isolando Dependências (30 min)
- Snapshot Testing e Testes de Comportamento Assíncrono (25 min)
Módulo 8: Web APIs Modernas e Avançadas
Domine as APIs nativas do browser: Observers, Service Workers, Streams e Web Crypto para aplicações robustas.
- MutationObserver, IntersectionObserver e ResizeObserver (30 min)
- Service Workers, Streams e Web Crypto API (35 min)
Módulo 9: Projeto Final: Sistema de State Manager Personalizado
Construa um state manager completo do zero aplicando todos os padrões avançados do curso: padrões de design, metaprogramação, programação funcional e performance.
- Arquitetura do State Manager: Store, Actions e Reducers (40 min)
- Middleware Pipeline e Thunks (35 min)
- Reactive Bindings e Time-Travel Debugging (35 min)
- Testes Completos do State Manager (30 min)