Programação Funcional Avançada em Java
Implemente conceitos avançados como Trampolines, Streams, Optionals, List, Trees e muito mais de maneira funcional
Description
Muito além do map, flatMap, filter e reduce. Você vai implementar conceitos funcionais do zero.
Aprenda a PENSAR de maneira funcional, tornando seu código muito mais simples e legível.
Aprenda um MODELO MENTAL voltado as práticas funcionais que elevará sua abordagem de desenvolvimento de software independente da plataforma usada.
Você será capaz de resolver problemas complexos e escrever software muito mais elegante.
Estudar programação funcional pode se tornar frustrante pois geralmente você encontra materiais superficiais, básicos e repetidos ou extremamente acadêmicos e difíceis de entender.
Este curso foi desenvolvido para você, que é experiente e deseja aprender conceitos avançados de forma prática.
Os conceitos que você vai aprender nester curso foram acumulados através de anos de experiência em empresas do Vale do Silício e Europa, como PayPal, Klarna, ThoughtWorks. E vão te ajudar á alcançar a mudança de paradigma de forma incremental em um curto período.
Desafio: O que a seguinte expressão vai imprimir? E por que?
Stream.of(1, 2, 3)
.map(x -> {
System.out.println("Mapeando " + x);
return x * 3;
})
.filter(x -> {
System.out.println("Filtrando " + x);
return x % 2 == 0;
}).collect(toList())
a) Mapeando 1
Mapeando 2
Mapeando 3
Filtrando 3
Filtrando 6
Filtrando 9
OU
b) Mapeando 1
Filtrando 3
Mapeando 2
Filtrando 6
Mapeando 3
Filtrando 9
* Suas funções devem ser puras, estamos escrevendo na tela apenas por questōes de didática :)
Este curso não é para iniciantes.
Este curso não vai te ensinar a API funcional básica do Java 8.
Este curso é extremamente desafiador e requer experiência.
What You Will Learn!
- Programação funcional avançada em Java
- Como apis e operações funcionais map, reduce, filter, flatMap são implementados
- Como implementar estruturas de dados funcionais, como Optional, List, Stream, Tree e mais
- Entender conceitos avançados de programação funcional como Partial Functions, Currying, Trampolines, Laziness, Memoization, Tail Recursion, Monads
- Se preparar para linguagens mais avançadas como Scala e Haskell
- Entender conceitos por trás de bibliotecas como Vavr
Who Should Attend!
- Programadores Senior
- Entusiastas em programação funcional
- Programadores funcionais