1 de julho, 2019

os desenvolvedores JavaScript estão abraçando a programação funcional muito nos dias de hoje, e há uma grande advocacia para escrever funções puras. O que são funções puras? Não há muito tempo, aprendi o conceito de funções puras, e para minha surpresa, eu já estava escrevendo muitas funções puras, sem perceber que havia um termo para isso.

funções puras

o que se qualifica como uma função pura?

uma função é considerada pura se obedecer às seguintes regras::

  1. a função retorna sempre o mesmo resultado se os mesmos argumentos forem passados.
  2. a função não produz quaisquer efeitos secundários.

temos todas as funções puras escritas no passado consciente ou inconscientemente.
dê uma olhada em uma função pura abaixo, que retorna uma soma de dois números dados dois argumentos de entrada.

function sumOfNumbers(a, b) { return a + b;}

a saída desta função permanecerá sempre a mesma, se os mesmos argumentos de entrada forem passados. É simples. Funções puras são blocos de construção simples que têm um comportamento previsível sempre. Portanto, eles sempre retornam a mesma saída previsível, sem qualquer influência externa.

aqui está um exemplo simples, sobre como uma função impura se parece.

var value = 5;function impure(arg) { return value + 2 + 3;}

aqui a função é considerada impura, porque não está usando o argumento que foi passado para ela. Em vez disso, utiliza um valor externo que está sujeito a alteração. Portanto, tornando a função impura devido à interferência externa / efeitos colaterais.Muito bem, vamos falar sobre a exigência dois sobre os efeitos secundários.Quais são os efeitos secundários?Os efeitos secundários ocorrem sempre que a sua função interage com o mundo exterior.Alguns exemplos de efeitos secundários comuns incluem::

  • Making an API call
  • Mutating data
  • console logs to the screen
  • Manipulating the DOM
  • Date.now () to get current date/time
  • async waited calls/waiting for promises to resolve
  • math.random() to generate random numbers

Well, you may wonder how we can write functions without side-effects all the time. É bastante desafiador evitar efeitos colaterais completamente. Tudo o que estou a dizer é que, para uma função se qualificar como pura, como o nome sugere, não deve ter efeitos secundários.

o que ganho escrevendo funções puras?

funções puras

Pic cortesia: Picpedia.Org muito bem, tiramos as definições do caminho. Você pode agora perguntar quais são os benefícios.

testar é fácil

Imagine, você tem um monte de funções puras, que fazem apenas uma coisa. Eles não têm quaisquer efeitos colaterais externos e eles sempre retornam saída previsível. Estas funções serão muito mais fáceis de testar, do que uma função que tem um monte de dependências e comportamento imprevisível. Escrever um código limpo e testável ajudará a melhorar drasticamente a sua qualidade de código.

o código de depuração não é uma dor

com funções puras, o código de depuração não será uma grande dor, em comparação com as funções impuras de depuração. Se você encontrar um problema ou bug, e você o reduziu a uma função pura, então você pode ter certeza de que você não tem que olhar para fora do escopo dessa função para encontrar o problema. Portanto, melhorando drasticamente a experiência de depuração do desenvolvedor.

Memoization to improve performance

With pure functions, it is guaranteed to return the same output for a given input. Isso cria possibilidade de memoização. Quando a mesma entrada é passada para uma função, ela pode puxar os resultados de um cache, fazendo o aplicativo Executar mais rápido. Caching pode economizar toneladas de recursos e melhorar o desempenho. E as funções de cache puras podem ser feitas sem qualquer preocupação, uma vez que são previsíveis sem efeitos colaterais.Este é um código óbvio. Com o código, que é tão limpo, fácil de testar e depurar, você acaba com um código muito maintenível também. Este é um aspecto importante que mantém o futuro em mente. Anos / meses mais tarde, se o seu software tem que ter recursos adicionais, e refactoring, o código que compreende o grupo de funções puras será extremamente intuitivo para re-fator. Eles não terão nenhum efeito colateral externo que o desenvolvedor precisaria se preocupar. Até os novos desenvolvedores da equipe podem assumir esta tarefa com facilidade.

um exemplo do mundo Real que usa funções puras

Redux é tão popular e a maioria de nós já o usou em alguns projetos ou já ouviu falar dele. Redutores são funções que fazem parte do padrão Redux E desempenham um papel crucial. A característica mais importante dos Redux reducers é que, eles são funções puras.

redutores são funções puras que tomam em um estado e ação e retornam um novo estado.

function(state, action) => newState

redutores são a maior parte da integração de Redux e detêm uma grande parte da lógica de negócios. E uma vez que redux reforça que os redutores têm que ser funções puras sem efeitos colaterais, acabamos com funções muito elegantes e simples que são fáceis de manter

Redux é um exemplo clássico de escrever funções puras. Ele deriva inspiração da programação funcional e ganhou imensa popularidade nos últimos anos. É fortemente usado em aplicações web modernas para a gestão do estado. Agora você sabe a razão por trás de seu sucesso, T é a exigência de escrever funções puras. Isso faz com que o código testável, limpo, mais fácil de depurar e mantenível.

Conclusion

we looked into how writing Pure Functions can benefit you and keep your code simple and elegant. Tenha em mente que as funções puras não se limitam ao JavaScript. Este conceito pode ser adotado em qualquer linguagem de programação de sua escolha. Ele funciona bem com JavaScript e qualquer linguagem de programação funcional.

se você está procurando melhorar suas habilidades JavaScript, eu recomendo o curso de Mosh em JavaScript.

confira todos os cursos de JavaScript aqui: https://codewithmosh.com/p/full-stack-javascript-developer-bundle

Se gostou deste post, por favor, espalhe a palavra e partilhe-o. Verifique de novo para mais postes.

Adhithi Ravichandran é um Consultor de Software baseado em Kansas City. Ela está atualmente trabalhando na construção de aplicativos com Reat, React Native e GraphQL. Ela é oradora de Conferências, autora Pluralsight, blogueira e Consultora de Software. Ela é apaixonada por ensinar e prospera em contribuir para a comunidade de tecnologia com seus cursos, posts em blogs e compromissos de fala.

Tags: javascript, funções puras

Deixe uma resposta

O seu endereço de email não será publicado.