Met4tron / plano_estudos

Pequena lista de estudos ao decorrer do meu ano
0 stars 0 forks source link

Programação funcional #1

Open yrachid opened 7 years ago

yrachid commented 7 years ago

Olá, vi que você comentou no grupo do Facebook Node.js Brasil pedindo por sugestões de temas para estudar. Achei que seria interessante abrir uma issue aqui com uma sugestão.

Acho que seria interessante colocar Programação funcional na lista porque é um tema que está crescendo bastante em popularidade ultimamente e vai ser algo que você vai aproveitar para usar em várias linguagens, não somente JavaScript (apesar de conseguir se beneficiar bastante do funcional usando js). Acho que o paradigma funcional apresenta conceitos que te fazem pensar de uma maneira diferente e também ajuda a programar melhor em algumas situações.

FidelisClayton commented 7 years ago

Também vale salientar que aplicando os conceitos de programação funcional você terá um código mais limpo, mais fácil de ler, mais fácil de manter e o melhor: muito mais fácil de testar.

Met4tron commented 7 years ago

Muito obrigado por ambos comentários!. Andei pesquisando sobre tal e achei um repo bastante interessante do Pagar-meLambda.

Mas tenho bastante dificuldade em implementar as pure functions, não entendo bem o momento em que devo usá-las. Poderiam dar uma dica?

FidelisClayton commented 7 years ago

Quais as dificuldades que você encontra ao tentar implementá-las?

Met4tron commented 7 years ago

Seriam bem básicas, quando e onde devo implementá-las... Pois acabou me confundindo por muitas das vezes

FidelisClayton commented 7 years ago

Funções puras são bastante simples, recebem inputs e seu output é baseado exclusivamente nos inputs.

function sum(num) { return num + num1; }

// correto function sum(num1, numb2) { return num1 + num2; }

const finalSum = sum(5, 3);



- Crie funções responsáveis por fazer uma única coisa (torna-se mais fácil de testar, ler e compor com outras funções);

Isso é o básico, não sei explicar muito bem :laughing:, comece aos poucos refatorando uma função ou outra e assim você vai evoluindo. Uma boa forma de aprender programação funcional é programar em uma linguagem puramente funcional, se quiser seguir esse caminho, eu sugiro que você dê uma olhada na linguagem Elm, é uma linguagem de programação puramente funcional, baseada no haskell e compila pra Javascript e ela é bastante utilizada como uma porta de entrada para o universo da programação funcional :laughing: por ser bastante simples e ter uma curva de aprendizagem curta.

Um artigo sobre Elm que escrevi: https://medium.com/@fidelisclayton/uma-vis%C3%A3o-geral-sobre-o-elm-b8c65e1aa074

Tese sobre programação funcional no frontend e Elm: https://drive.google.com/file/d/0BzfJvCA4sXjQNjJwd2twQUFOU0k/view (no começo o autor explica de uma forma bem concisa os principais conceitos da programação funcional, acho que vale a pena dar uma olhada nesta parte)