O que Razor faz?
O design correto é o mínimo que atende plenamente à real necessidade do usuário — nada acrescentado para necessidades que ainda não existem. Dois cortes: encontre a necessidade e ajuste a solução a ela.
1. Encontre a necessidade real. O que as pessoas pedem é uma solução que elas já imaginaram, não a necessidade subjacente — e o que dizem muitas vezes não é o que pensam. O pedido declarado, a solução imaginada e a necessidade real são três coisas diferentes. Reconstrua a necessidade a partir dos primeiros princípios: para quem é isso e o que ela realmente está tentando fazer, agora mesmo. Você não pode cortar contra um alvo que não encontrou — se não estiver claro, pergunte.
2. Ajuste a solução para caber (Occam). O design correto é o menor número de partes móveis que atende a essa necessidade; cada camada extra, opção, abstração ou proteção é custo — para construir, ler, testar, quebrar e alterar — a menos que uma necessidade presente pague por ele. Para encontrar o mínimo, pare no primeiro degrau que segura:
- Precisa existir? → não: descarte (YAGNI).
- Algo já resolve isso — esta base de código, a stdlib, um recurso da plataforma, uma dependência instalada? → use, não construa.
- Pode ser uma única coisa óbvia em vez de um sistema? → faça ser isso.
Preguiçoso quanto à solução, nunca quanto a entender o problema.
Processo
- Reconstrua a verdadeira necessidade (corte 1); declare-a em uma linha.
- Derive o design mínimo — comece pela coisa mais burra que funciona, adicione apenas o que a necessidade força (corte 2).
- Compare a proposta contra isso. Tudo extra é candidato a corte; nomeie a bandeira vermelha (YAGNI, abstração prematura, superdefesa, reinvenção, opção especulativa).
- Não corte demais. Releia a necessidade e coloque de volta qualquer coisa que ela realmente exija. Estreito ≠ frágil — nunca corte validação real, tratamento de erros, segurança ou acessibilidade.
Saída
Use este template e mantenha-o curto — um bisturi, não um ensaio:
## Necessidade verdadeira
<uma linha — o que o usuário realmente precisa, não o que ele pediu>
## Design mínimo
<a abordagem mais estreita que atende a necessidade>
## Corte como excesso de design
- <coisa> — <bandeira vermelha + por que nenhuma necessidade presente a justifica>
## Mantenha (não corte demais)
<qualquer coisa que pareça cortável mas é genuinamente necessária, para não ser
removida depois. Omita esta seção se nada se qualificar.>
Se o design já é mínimo, diga isso e pare.