Vamos fingir que vamos concluir uma tarefa agora: escreva o código JavaScript o máximo possível de acordo com os princípios dos idiomas funcionais.
A próxima série de artigos é deixar você e eu começar esta jornada. Primeiro, precisamos corrigir alguns dos conceitos de erros de linguagem funcional que podem estar em sua mente.
As fórmulas funcionais na linguagem JS são seriamente incompreendidas.
Obviamente, existem muitos desenvolvedores que desejam usar o paradigma funcional de JavaScript todos os dias. Eu diria que há uma parte maior dos desenvolvedores de JavaScript que realmente não entendem essas coisas.
Eu acho que o motivo disso é que a maioria dos idiomas de desenvolvimento usada no servidor da Web é derivada de C, e todos sabem que esses idiomas não são linguagens funcionais.
Geralmente, existem dois níveis de confusão. A primeira camada é sobre o uso no exemplo a seguir, que é um uso muito comum no jQuery:
$ ("..No código acima: passamos uma função anônima como um parâmetro, que é a infame função de retorno de chamada no JavaScript. Essas funções serão chamadas? De jeito nenhum!
O exemplo acima ilustra um recurso essencial de uma linguagem funcional: uma função é um parâmetro. Por outro lado, este exemplo viola quase todos os paradigmas de programação funcionais que podem ser violados usando apenas três linhas de código.
O segundo nível de dúvida é mais sutil. Confira isso: apenas alguns desenvolvedores da moda JS se olham assim:
Bem, isso é muito bom! Mas eu já tenho um entendimento completo da programação funcional e uso o subscore.js em todos os meus projetos.
Subscore.js é uma biblioteca JavaScript muito famosa e onipresente. Por exemplo: suponha que eu tenha um conjunto de palavras e preciso das duas primeiras letras para cada palavra. Isso é muito simples de escrever com o subscore.js:
var FirstTwoletters = function (palavras) {return _.map (palavras, function (word) {return _.first (word, 2);});};Veja este exemplo javascript. Usei as funções requintadas e práticas na fórmula da função: _.map e _.first. O que você acha disso?
Embora funções como o subscore.js e _.map sejam paradigmas funcionais úteis, juntando essas coisas assim neste exemplo ainda me torna um pouco difícil de entender. Nós realmente precisamos fazer isso?
Se começarmos a pensar em como ser mais "funcional", talvez possamos reescrever o exemplo acima como este:
// ... um pouco de Magicvar FirstTWOLETTERS = MAP (primeiro (2));
Se você pensar com cuidado, essa linha de código tem o mesmo efeito que as 5 linhas acima. Muitas palavras são apenas parâmetros ou espaço reservado. A lógica real é combinar a função do mapa, a primeira função e a constante 2 de maneira significativa.
Algumas pessoas podem estar se perguntando: qual é a mágica neste exemplo? Afinal, é como se gabar de dizer que algum exemplo é mágico, certo?
Estou planejando usar os próximos dois artigos para explicar o que o exemplo acima é mágico. Se você está curioso, pode continuar lendo.
Esta série de blogs é ajudá -lo a aplicar a beleza da programação funcional ao seu código JavaScript.
Na próxima seção, discutirei vários elementos de funcional e não funcional no idioma JavaScript. Com esse conhecimento, podemos formar lentamente um sistema completo de programação funcional em nossos cérebros, integrando esses elementos e entender seu desempenho no JavaScript.