Se você já programou por um tempo, provavelmente ouviu falar de funções puras. Mas o que exatamente isso significa e por que elas são tão valorizadas?
Elas fazem parte do paradigma da programação funcional, mas não se limitam a ele. Mesmo em código orientado a objetos ou misto, entender e aplicar funções puras pode deixar seu código mais previsível, organizado e fácil de testar.
Vamos tentar entender como elas funcionam?
O Que É uma Função Pura?
Uma função pura segue duas regras simples:
1. Sempre retorna o mesmo resultado para a mesma entrada
Se você passar os mesmos valores como argumento, ela sempre devolverá o mesmo resultado.
2. Não causa efeitos colaterais
Isso significa que a função não altera variáveis externas, não faz chamadas de API, não mexe no DOM… Enfim, ela só faz o trabalho dela e nada mais.
Seguindo essas regras, conseguimos funções previsíveis e fáceis de testar.
Exemplos de Funções Puras e Impuras
Função Pura Simples
function soma(a, b) {
return a + b;
}
Sempre retorna o mesmo valor para os mesmos argumentos.
Altera nada fora dela.
Função Impura
let total = 0;
function adicionaAoTotal(valor) {
total += valor;
return total;
}
O retorno depende do valor da variável total, que pode mudar.
Modifica o estado global, dificultando a previsibilidade.
Função Pura com Objetos
function adicionaPropriedade(objeto, chave, valor) {
return { ...objeto, [chave]: valor };
}
Retorna um novo objeto sem modificar o original.
Sempre gera o mesmo resultado para os mesmos inputs.
Por Que Usar Funções Puras?
Elas trazem várias vantagens para o código:
Fáceis de testar – Sem depender de estados externos, basta passar os argumentos e verificar a saída.
Código mais previsível – Nada de bugs estranhos por efeitos colaterais inesperados.
Facilitam o reaproveitamento – Como não alteram nada externo, podem ser usadas em vários lugares do código sem medo.
Melhor para concorrência e paralelismo – Como não compartilham estados mutáveis, são mais seguras em execuções simultâneas.
Quando Evitar Funções Puramente Puras?
Nem tudo pode (ou deve) ser uma função pura. Algumas tarefas exigem efeitos colaterais, como:
Alterar o DOM
Fazer chamadas de API
Gravar em um banco de dados
O ideal é separar bem essas partes impuras do código e manter a maior parte possível com funções puras.
Funções puras tornam o código mais organizado, previsível e fácil de testar. Usar esse conceito no dia a dia pode ser um grande diferencial para escrever código de qualidade.
Se ainda não usa, tente começar aos poucos, assim como qualquer coisa em desenvolvimento de software devemos ir aos poucos e aprendendo, mas você vai notar como seu código fica mais limpo e menos propenso a bugs! 😉
Obrigada pela leitura <3
0