Módulo 12 - Funções, as máquinas do algoritmo
Reusar sem copiar e colar: escreva uma vez, use sempre
8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 02/07/2026
O que você vai aprender
- Reconhecer o copiar e colar como fábrica de bugs futuros.
- Aplicar a regra “não se repita”: repetiu duas vezes, vire função.
- Consertar uma regra em UM lugar e propagar para todos os usos.
- Enxergar as funções prontas das linguagens como reuso de fábrica.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Reusar sem copiar e colar: escreva uma vez, use sempre.
Os objetivos desta aula. Reconhecer o copiar e colar como fábrica de bugs futuros. Aplicar a regra “não se repita”: repetiu duas vezes, vire função. Consertar uma regra em UM lugar e propagar para todos os usos. Enxergar as funções prontas das linguagens como reuso de fábrica.
Veja o essencial, parte por parte.
A armadilha do copiar e colar. Copiar e colar espalha a MESMA regra por vários lugares; quando ela mudar, algum esquecido fica para trás.
Treinando o faro para repetição. O faro anti-repetição se treina, e há nuances que separam o reuso maduro do reflexo apressado.
A recompensa: seu código virou caixa de ferramentas. Escreva uma vez, teste uma vez, use para sempre: essa é a economia das funções. De agora até o fim do curso, todo algoritmo com mais de vinte linhas que você escrever deve nascer decomposto em máquinas.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
A armadilha do copiar e colar
Imagine a cena, que acontece todo dia em algum computador do mundo: o programa da lanchonete calcula o preço com desconto em três telas diferentes, e o programador resolveu no método rápido, copiando as mesmas quatro linhas para os três lugares. Funcionou. Meses depois, o dono muda o desconto de 10 para 15 por cento. O programador atualiza duas cópias e esquece a terceira. Resultado: a tela do caixa cobra um preço, a do delivery cobra outro, e o cliente percebe antes do dono. Nenhuma das cópias tinha erro; o erro foi existirem cópias.
Esse tipo de defeito é traiçoeiro porque nasce invisível. No dia da cópia, o programa está perfeito e os testes passam. A bomba só arma quando a regra muda, e regra de negócio muda sempre: desconto, taxa de entrega, faixa do imposto, valor do teto. Cada cópia é um lugar a mais para lembrar, e memória humana não é ferramenta de engenharia. A defesa tem nome curto e fama mundial: “não se repita”, o princípio DRY. Se a mesma lógica aparece duas vezes, ela está pedindo para virar função.
função preco_com_desconto(preco)
retorne preco - preco * 15 / 100
fim função
// tela do caixa: escreva(preco_com_desconto(40))
// tela do delivery: escreva(preco_com_desconto(52))
// tela do balcão: escreva(preco_com_desconto(25))
// o desconto mudou? Conserta-se UMA linha, e as três telas obedecem.A regra mora num lugar só: mudou o desconto, mudou para todo mundo.
Treinando o faro para repetição
O faro anti-repetição se treina, e há nuances que separam o reuso maduro do reflexo apressado. Nem toda semelhança é repetição de verdade: dois trechos podem parecer iguais hoje e ter motivos diferentes para mudar amanhã, e aí uni-los cria um nó. O sinal confiável é a REGRA compartilhada: se os trechos existem pelo mesmo motivo (o mesmo desconto, a mesma validação de idade, o mesmo cálculo de média), eles devem morar na mesma função. Programadores experientes falam da regra das três ocorrências: na primeira escreva, na segunda desconfie, na terceira extraia sem dó.
🎮 Jogo da aula
Caça-mitos do reuso
Verdadeiro ou falso? Julgue cada afirmação sobre copiar, colar e reusar.
E o reuso não para no seu arquivo. A função preco_com_desconto que você escreveu para a lanchonete serve, sem mudar uma vírgula, no programa da papelaria. Máquinas bem feitas, com responsabilidade única e nome honesto, viajam entre projetos, e é exatamente assim que a profissão funciona: bibliotecas inteiras de funções compartilhadas entre milhões de programadores. Quando você chegar ao Python, na trilha seguinte do portal, vai encontrar prateleiras de máquinas prontas para matemática, texto, datas e muito mais.
A recompensa: seu código virou caixa de ferramentas
Feche o módulo olhando o caminho andado. Na aula 1, a função era uma máquina com nome. Na aula 2, ela ganhou boca de entrada: os parâmetros. Na aula 3, ganhou a saída oficial: o retorno. Na aula 4, você aprendeu a projetar a fábrica inteira, quebrando problemas em máquinas de responsabilidade única. Agora, o arremate: cada função bem feita entra na sua caixa de ferramentas pessoal e nunca mais precisa ser escrita de novo. Os módulos que faltam colhem esse fruto: o teste de mesa do módulo 13 testa função por função, e o projeto final do módulo 16 é, no fundo, uma coleção de máquinas suas trabalhando juntas.
Escreva uma vez, teste uma vez, use para sempre: essa é a economia das funções. De agora até o fim do curso, todo algoritmo com mais de vinte linhas que você escrever deve nascer decomposto em máquinas.
Teste rápido
O mesmo cálculo de frete aparece copiado em 4 pontos do programa, e a transportadora mudou a regra. Qual é o caminho mais seguro?
Perguntas frequentes
- Copiar e colar é sempre errado?
- Como técnica de digitação, não: copiar um trecho para dentro da função que você está extraindo é normal. O problema é o copiar e colar como arquitetura, deixando a mesma regra viva em vários endereços. A pergunta certa é: se essa regra mudar, quantos lugares terei que lembrar?
- O que significa a sigla DRY?
- Don't Repeat Yourself, “não se repita” em inglês. O princípio ficou famoso no livro The Pragmatic Programmer, de 1999, e diz que cada conhecimento do sistema deve ter uma representação única. Na prática do curso: regra repetida vira função.
- Como encontro as funções prontas de uma linguagem?
- Pela documentação oficial, que lista as funções embutidas com exemplos: o Python, por exemplo, documenta todas as suas funções nativas em português. Antes de escrever uma máquina, vale dois minutos de busca: arredondar, ordenar, medir tamanho e dezenas de tarefas comuns já vêm prontas.
- Reusar função dos outros não é preguiça?
- É engenharia. A função pronta de arredondar números já foi testada por milhões de execuções; a sua versão caseira começaria do zero. O tempo que você economiza vai para a parte que só você pode fazer: a lógica do SEU problema. Profissional bom reusa o comum e inventa apenas o específico.
- Se eu mudar a função reutilizada, não quebro todos os lugares que a chamam?
- Esse é o outro lado da moeda, e é bom conhecê-lo: um conserto na função se propaga para todos os usos, mas um estrago também. Por isso o hábito de testar a função isolada após qualquer mudança, com os valores conhecidos da aula 4. Um lugar para consertar é também um lugar só para vigiar.
- Quando devo criar minha própria função em vez de procurar uma pronta?
- Quando a lógica é do seu problema, não do mundo: a regra de desconto da SUA lanchonete, a validação do SEU formulário. O universal (arredondar, ordenar, converter) quase sempre já existe pronto; o específico do seu negócio é seu trabalho. Essa divisão fica nítida com a prática.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.