Dev (Back & Front)ARTIGO

Série JS é vida – Pure Functions (Funções Puras)

Neste artigo, Jhones Gonçalves apresenta o conceito "Pure Functions", funções que manipulam estado de variáveis ocasionando, assim, efeitos colaterais quando chamadas.

Série JS é vida – Pure Functions (Funções Puras)
Imagem: Jhones Gonçalves

Fala, galera!

Hoje vou começar uma série de artigos sobre JavaScript, e o primeiro deles é sobre um assunto muito interessante: Pure Functions, muito usado em programação funcional.

As principais vantagens:

  • Fácil manutenção
  • Fácil de testar
  • Não possui efeitos colateral

Primeiro vamos começar pelo que não é uma função pura.

São funções que manipulam estado de variáveis ocasionando, assim, efeitos colaterais quando chamadas e também podem ter um retorno variável mesmo tendo a mesma entrada.

Exemplo:

let geek = {
  nome: 'jhones',
  idade: 23
};

function impureFunction() {
  geek.idade = 30
  return geek.idade
}

impureFunction() //retorna 30
console.log(geeks) //retorna { nome: 'jhones', idade: 30 }

Como podemos ver no exemplo, a propriedade idade do objeto geek é alterada para 30, causando efeitos colaterais no objeto geek.

O que são Funções Puras?

É uma função que dada a mesma entrada, sempre retornará a mesma saída e não tem efeitos colaterais. Sendo assim, é mais fácil de testar e fazer a manutenção.

Exemplo:

function pureFunction(a,b) {
  return a + b
}

pureFunction(1,2) // retorna 3

Como no exemplo acima, a função sempre retorna o mesmo valor baseado na entrada sem manipular nenhuma variável fora.

Conclusão

Funções puras são fáceis de implementar e testar. Meu conselho é que sempre que puder, use, pois elas vão tornar seu código mais bonito, prático e simples de fazer a manutenção.

Abraço, galera! Espero que tenha sido útil.

Acompanhem os próximos artigos da série que logo serão publicados aqui no portal.

Staff Software Engineer na Stix Fidelidade, especialista em desenvolvimento de software com foco em .NET e NodeJS. Pós graduado em Arquitetura de Software pela PUC, palestrante e Entusiasta de Gastronomia.

Ver perfil