Programação Funcional Uma introdução em Clojure
Gregório MeloConteúdo
Se você se interessa em aprender a escrever programas melhores, Programação Funcional tem muito a lhe oferecer. Com ela, você pode produzir códigos mais robustos, menos suscetíveis a erros e expandir sua forma de pensar. E Clojure possui recursos que nos ajudam a manter o foco na Programação Funcional: sua sintaxe, que é simples e muito diferente das linguagens mais populares, o ganho em desempenho com as estruturas de dados imutáveis e oportunidade de paralelismo. Clojure, principalmente, roda na máquina virtual Java, então podemos utilizar bibliotecas escritas em Java. Sua ferramenta de automação de tarefas e gerenciamento de dependências, Leiningen, é bastante flexível e completa, e provê suporte ao repositório de bibliotecas do Maven.
Neste livro, Gregório Melo oferece uma introdução à Programação Funcional, utilizando a linguagem Clojure para demonstrar os princípios deste paradigma. Você aprenderá novas práticas e conceitos que vão ajudá-lo a escrever aplicações melhores, com exemplos de domínio, funções e requisições HTTP, seguindo uma abordagem de desenvolvimento guiado por teste. Se você tem a mente aberta para uma nova linguagem de programação e acredita que uma sintaxe e paradigma novos o levarão a novos horizontes, este livro é para você.
Sumário
Parte 1: O suficiente de Clojure para começarmos a brincadeira
- 1 Primeiros contatos com Clojure
- 1.1 As primeiras linhas de código
- 1.2 Nossas próprias funções
- 1.3 O que é a verdade? Sobre os condicionais
- 1.4 Conclusão
- 2 Resolvendo o FizzBuzz
- 2.1 Conclusão
- 3 Estruturas de dados em Clojure
- 3.1 Listas
- 3.2 Vetores
- 3.3 Sets
- 3.4 Conclusão
- 4 Controle financeiro e novas estruturas de dados
- 4.1 Keywords
- 4.2 Mapas
- 4.3 Conclusão
Parte 2: Embarque no mundo da Programação Funcional
- 5 Programação Funcional, o começo
- 5.1 Funções: primeira classe e grandeza superior
- 5.2 Funções de grandeza superior e nossas finanças
- 5.3 Conclusão
- 6 Composição de funções e aplicação parcial de funções
- 6.1 Composição de funções
- 6.2 Aplicação parcial
- 6.3 Conclusão
- 7 Pureza e imutabilidade
- 7.1 Pureza
- 7.2 Imutabilidade
- 7.3 Imutabilidade no nosso domínio
- 7.4 Recursão
- 7.5 Conclusão
- 8 Preguiça
- 8.1 Sequências preguiçosas e listas infinitas de transações
- 8.2 A macro lazy-seq
- 8.3 Conclusão
Parte 3: Programação Funcional na prática
- 9 Criando uma aplicação com Leiningen
- 9.1 O conversor de moedas
- 9.2 Interoperabilidade com Java
- 9.3 Dependências
- 9.4 Consultando o serviço
- 9.5 Interpretando JSON
- 9.6 Conclusão
- 10 Controle financeiro pessoal via HTTP
- 10.1 O esqueleto com o Leiningen
- 10.2 Testes
- 10.3 Conclusão
- 11 Evolução da API: saldo inicial
- 11.1 Começando com testes de aceitação
- 11.2 JSON como formato de representação de dados
- 11.3 O toque final
- 11.4 Conclusão
- 12 Uma API mais rica com transações
- 12.1 Criando transações
- 12.2 Conclusão
- 13 Extrato das transações e seus filtros
- 13.1 Receitas ou despesas?
- 13.2 Conclusão
- 14 Considerações finais
- 14.1 Ferramentas para o dia a dia da programação
- 14.2 Oportunidades de refatoração
- 14.3 Funcionalidade a implementar
- 14.4 Outras formas de testes
- 14.5 Ports & Adapters (hexagonal) e funcional
- 14.6 Despedida
Autor
Gregório Melo
Gregório Melo é desenvolvedor de software na ThoughtWorks Brasil. Hoje tem foco em backend e infraestrutura, e já trabalhou com diversas linguagens de programação em três continentes diferentes. Orgulha-se de ter sido uma das vozes frequentes do podcast Tecnologicamente Arretado e ultimamente tem se dedicado à paternidade.
Dados do produto
- Número de páginas:
- 214
- ISBN:
- 978-85-7254-001-8
- Data publicação:
- 03/2019