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.