Sobes.tech
Junior

O que são efeitos colaterais no contexto da programação?

sobes.tech IA

Resposta da IA

Um efeito secundário é uma alteração no estado visível de um programa que ocorre fora do valor de retorno de uma função.

Os principais tipos de efeitos secundários:

  • Modificação de variáveis globais ou do estado de objetos.
  • Entrada/saída de dados (leitura de um arquivo, escrita no console, requisições de rede).
  • Alteração do conteúdo de um banco de dados.
  • Lançamento de uma exceção não tratada dentro de uma função.
  • Alteração na árvore DOM no navegador.
  • Chamada de outras funções com efeitos secundários.

Exemplo de uma função pura (sem efeitos secundários):

// A função apenas soma dois números e retorna o resultado
function add(a, b) {
  return a + b;
}

Exemplo de uma função com efeito secundário (alteração de uma variável global):

let total = 0;

// A função soma um valor e altera a variável global
function addToTotal(value) {
  total += value; // Efeito secundário: alteração na variável global
  return total;
}

Impacto dos efeitos secundários:

  • Dificultam os testes.
  • Complicam a execução paralela do código devido a condições de corrida potenciais.
  • Tornam o código menos previsível e mais difícil de entender.
  • Podem violar os princípios da programação funcional.

No desenvolvimento frontend, efeitos secundários frequentemente estão relacionados a:

  • Manipulação do DOM.
  • Requisições HTTP.
  • Operações com Local Storage ou Session Storage.
  • Trabalhar com APIs de terceiros.

A gestão de efeitos secundários é uma tarefa importante na construção de aplicações confiáveis e de fácil manutenção. Padrões como Redux (que enfatiza a gestão previsível do estado e a separação de efeitos secundários em ações/sagas), ou o uso de funções puras sempre que possível, ajudam a minimizar seu impacto negativo.