O retorno do cangaceiro JavaScript De padrões a uma abordagem funcional
Flávio AlmeidaSobre o livro
A quem se destina o livro
Este livro destina-se àqueles que desejam aprimorar a manutenção e legibilidade de seus códigos, aplicando o paradigma funcional e padrões de projetos.
Procurei utilizar uma linguagem menos rebuscada para tornar este livro acessível a um amplo espectro de desenvolvedores. No entanto, é necessário que o leitor já tenha conhecimento da linguagem JavaScript para um melhor aproveitamento.
Além de conhecer a linguagem JavaScript, é recomendado que o leitor já tenha um conhecimento, mesmo que básico, de módulos e da API Fetch. Para diminuir o gap entre o leitor e o livro, será realizada uma revisão desses dois tópicos. Aliás, ambos já foram abordados no livro Cangaceiro JavaScript: uma aventura no sertão da programação deste mesmo autor.
Sobre a nossa jornada
O leitor será introduzido gradativamente aos jargões e técnicas do paradigma funcional aplicados à linguagem JavaScript, além de padrões de projetos que visam melhorar a manutenção e legibilidade do código.
Você aprenderá várias técnicas que farão parte do seu arsenal para resolver problemas comuns do seu dia a dia como programador front-end utilizando apenas vanilla JavaScript.
Por fim, grande parte do que você aprenderá servirá como base para entender a motivação e dominar outras bibliotecas e frameworks do mercado.
Infraestrutura necessária
Como utilizaremos o sistema de carregamento nativo de módulos JavaScript nos navegadores, é necessário que o leitor utilize navegadores compatíveis. A boa notícia é que, na data de publicação deste livro, o carregamento de módulos nativos é suportado pelos principais navegadores.
Precisaremos que a plataforma Node.js esteja instalada para que o servidor local disponibilizado com o download do projeto seja executado. O Node.js pode ser baixado no endereço https://nodejs.org/en/. Durante a criação deste projeto, foi utilizada a versão 8.1.3. Mas não há problema em baixar versões mais novas, contanto que sejam versões pares, as chamadas versões LTS (Long Term Support).
-------------------------------------------Prefácio por Loiane Groner
O JavaScript é uma linguagem que está em constante evolução. Com as ferramentas disponíveis hoje, podemos usar diferentes paradigmas e até mesmo usar mais de um paradigma em um mesmo projeto.
O paradigma funcional está cada vez mais presente em frameworks modernos. O retorno do cangaceiro JavaScript é um livro que nos leva a uma jornada e nos ensina conceitos da Programação Funcional e conceitos avançados do JavaScript de maneira bem fluida, fazendo que com a gente aprenda conceitos mais difíceis sem perceber. Após os conceitos iniciais, o livro nos ensina os conceitos da Programação Funcional reativa, através de exemplos práticos com a criação da nossa própria biblioteca e operadores. Por fim, aprendemos os padrões mais utilizados e técnicas que podemos usar para melhorar nossos projetos.
O autor aborda conceitos e técnicas que são essenciais para pessoas desenvolvedoras de front-end, podendo também ser utilizados no back-end e até mesmo em outras linguagens. Com o conhecimento adquirido neste livro, será possível se aventurar em terras ainda mais avançadas e frameworks que possuem demanda no atual mercado de trabalho.
Jogue-se no retorno dessa aventura e se divirta com os códigos!
Sumário
- Parte 1 - O encontro
- 1 Organização inicial do projeto
- 1.1 Subindo o servidor
- 1.2 A página principal do projeto
- 1.3 Organizando o código em módulos
- 1.4 O módulo principal da aplicação
- 1.5 Consumo de Endpoints REST
- 2 Adequação dos dados recebidos
- 2.1 Array e seus superpoderes
- 2.2 Revisando a função reduce
- 2.3 Arrays de uma dimensão através de reduce
- 2.4 Implementação da função Log
- 2.5 A intenção do código
- 2.6 Implementação da função flatMap
- 2.7 Deixando clara nossa intenção
- 2.8 Revisando closure
- 2.9 Modificando funções para que recebam apenas um parâmetro
- 2.10 Isolamento de código por meio de um serviço
- 3 Composição de funções
- 3.1 Reduzindo a quantidade de parâmetros de uma função
- 3.2 Partial application
- 3.3 Compondo funções
- 3.4 Implementando a função compose
- 3.5 compose versus pipe
- Parte 2 - O último ensinamento
- 4 Limitando operações
- 4.1 Construção da função takeUntil
- 4.2 Construção da função debounceTime
- 4.3 Mais composição
- 5 Lentidão na rede
- 5.1 Simulando lentidão na rede no navegador
- 5.2 A função Promise.race
- 5.3 Implementando timeout em Promises
- 5.4 Repetindo operações
- 5.5 Implementando delay em Promises
- 5.6 Implementando retry em Promises
- 6 Combatendo o alto acoplamento
- 6.1 O pattern Publish-Subscribe
- 6.2 Sobre EventEmitter
- 6.3 Implementando um EventEmitter
- 6.4 Desacoplando nosso código
- 7 A mônada maybe
- 7.1 Lidando com dados nulos
- 7.2 Criamos uma mônada sem saber!
- 7.3 Utilizando nosso tipo monádico
- 7.4 Mais padrões de projeto
- Parte 3 - Encontrando a paz
- 8 Recursão segura com o padrão Trampoline
- 8.1 Recursão e clássico cálculo fatorial
- 8.2 Ultrapassando o tamanho máximo da call stack
- 8.3 Tail Call Optimization
- 8.4 O pattern Trampoline
- 8.5 Conclusão
- 9 Funções velozes com o padrão Memoization
- 9.1 Implementação do pattern Memoization
- 9.2 Implementando a função memoizer
- 9.3 Memoizing da função factorial
- 9.4 Memoization de Promises
- 9.5 Conclusão
- 10 O padrão Decorator
- 10.1 TypeScript como inspiração
- 10.2 Primeira solução
- 10.3 Isolando decorators e definindo uma API
- 10.4 Implementando a função decorate
- 10.5 Métodos com mais de um decorator
- 10.6 Ordem dos decorators
- 10.7 Decorators que recebem parâmetros
- 10.8 Aplicando o decorator diretamente na definição da classe
- 10.9 Considerações finais
Dados do produto
- Número de páginas:
- 170
- ISBN:
- 978-85-94188-81-6
- Data publicação:
- 08/2018