A Navalha de Ockham para Desenvolvedores: Menos é Mais (Mesmo)
Por William Pereira ·
O que é a Navalha de Ockham?
A Navalha de Ockham é um princípio filosófico atribuído ao frade franciscano William de Ockham (séc. XIV), que, em essência, diz:
“A explicação mais simples tende a ser a correta.”
Traduzido para o universo do desenvolvimento de software:
“Não adicione complexidade sem necessidade.”
Por que isso importa para desenvolvedores?
Porque tempo, clareza e manutenção são recursos preciosos. Quando você complica desnecessariamente, o custo aparece em forma de bugs, retrabalho, onboarding lento, perda de performance e código que ninguém quer tocar.
Exemplos práticos da Navalha de Ockham no dia a dia do dev
✅ 1. Evite abstrações prematuras
Cenário: Você criou dois repositórios para acessar o banco: UserRepository e ProductRepository. Percebeu que ambos usam o mesmo padrão e já pensa em criar uma BaseRepository, GenericRepository, RepositoryInterface, e um RepositoryFactory.
Aplicando a Navalha de Ockham: Espere. Você realmente precisa disso agora? Há apenas dois repositórios. Abstrair agora é complexidade sem necessidade.
Benefício: Você mantém o código simples até que a complexidade real justifique a abstração.
✅ 2. Evite frameworks ou libs pesadas só para tarefas simples
Cenário: Você precisa fazer uma chamada HTTP simples no backend. Decide instalar o Axios, configurar interceptors, criar uma service layer e mapear os resultados em DTOs.
Aplicando a Navalha de Ockham: Se o fetch() já resolve, use o fetch().
Benefício: Menos dependências, menos peso, menos bugs.
✅ 3. Não crie microserviços antes da hora
Cenário: Seu sistema é pequeno, mas você leu que microserviços escalam melhor. Então cria 5 APIs separadas, com autenticação própria, filas, eventos e monitoramento individual.
Aplicando a Navalha de Ockham: Monolito simples e bem organizado resolve melhor nesse estágio. Microserviços são úteis, mas só quando a complexidade real aparece (times diferentes, escalabilidade independente, etc).
Benefício: Você entrega mais rápido, com menos custo operacional.
✅ 4. Evite configurações super genéricas
Cenário: Você está criando um formulário de login. Em vez de simplesmente criar os campos email e senha, você cria um gerador de formulários dinâmicos com JSON Schema e validação personalizada para futuros usos "que talvez venham".
Aplicando a Navalha de Ockham: Implemente só o que precisa agora. Quando (e se) os requisitos mudarem, você refatora com base em necessidades reais.
Benefício: Você entrega valor mais rápido e evita o famoso “overengineering”.
Onde a Navalha de Ockham não se aplica cegamente
- Segurança: Aqui, a simplicidade nem sempre é o melhor. Uma solução “simples” pode deixar brechas.
- Performance crítica: Às vezes, soluções mais complexas são justificadas para ganhar milissegundos em sistemas de alto desempenho.
- Legibilidade: Nem sempre a menor quantidade de código é mais clara. Código simples de entender é melhor que código simplesmente curto.
Como aplicar na prática
- Antes de escrever código, pergunte: isso é realmente necessário?
- Evite pensar em “e se um dia…” e foque no “o que é necessário agora”.
- Use a regra dos 3: só comece a generalizar uma solução se já teve que resolvê-la pelo menos três vezes.
- Prefira soluções conhecidas e bem testadas antes de inventar uma nova.
Conclusão
A Navalha de Ockham é um lembrete poderoso para desenvolvedores: não complique o que pode ser simples.
Quando usada com bom senso, ela:
- Reduz bugs,
- Aumenta a produtividade,
- Facilita a manutenção,
- E deixa seu time mais ágil.
“Simplicidade é a sofisticação máxima.” — Leonardo da Vinci