Use o código e tenha 10% de desconto!

O retorno do cangaceiro JavaScript De padrões a uma abordagem funcional

Flávio Almeida

Sobre 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

Compartilhe!

Compartilhe no Facebook Compartilhe no Twitter