DEV Community

Gustavo da Rosa Oliveira
Gustavo da Rosa Oliveira

Posted on

O código perfeito NÃO existe - e está na hora de aceitar isso

Durante minha trajetória profissional, muitas vezes me vi em busca de um objetivo utópico: escrever o código perfeito. Refatorava, revisava, reescrevia. Olhava para cada detalhe como se, em algum momento, existisse um estado ideal em que o código finalmente fosse intocável. Adivinha? Esse momento nunca chegou.

E não é porque eu falhei. É porque o código perfeito NÃO existe.

O que existe é o melhor código possível dentro do contexto atual: considerando as prioridades da companhia, as pressões de negócio, o tempo de entrega e até a maturidade do time. A obsessão pelo “código perfeito” é perigosa porque ignora uma realidade simples: nós, desenvolvedores, somos protetores do código, sim, mas também somos entregadores — e somos pagos para entregar valor. Isso significa que, o tempo todo, precisamos equilibrar qualidade x entrega.

Nosso papel não é buscar a perfeição inalcançável, mas fazer escolhas conscientes, entendendo quando vale investir mais em qualidade e quando a prioridade é colocar valor na mão do cliente.

Aprendi que a melhor estratégia é simples e poderosa: sempre deixar a casa (o código) um pouco melhor do que encontramos. Nem que seja 1%. Uma função mais legível, um teste a mais, uma dependência desnecessária a menos. Esses pequenos avanços, somados no tempo, criam sistemas sustentáveis, que conseguem evoluir sem virar um pesadelo para o time.

Então, se você ainda está em busca do código perfeito, aceite: ele não existe. O que existe é a disciplina de cuidar do código todos os dias sem esquecer que o nosso trabalho é entregar valor — porque no final das contas, perfeição é ilusão, já a evolução constante é uma escolha.

Boas práticas para equilibrar qualidade e entrega

Se não existe código perfeito, o que podemos fazer na prática? Algumas atitudes simples no dia a dia ajudam muito:

  1. Usar nomes claros e autoexplicativos

    // Evite:
    var l = Calculate(x, y);  
    
    // Prefira:
    var totalPrice = CalculateTotalPrice(unitPrice, quantity);
    
  2. Fazer bom uso do DRY (Don't Repeat Yourself), evitando duplicações desnecessárias

    // Evite duplicar a mesma lógica em vários pontos
    if (order.Total > 1000) { ApplyDiscount(order, 0.05m); }
    
    if (invoice.Total > 1000) { ApplyDiscount(invoice, 0.05m); }
    
    // Prefira extrair para um método único
    private void ApplyDiscountIfEligible(IHasTotal entity)
    {
        if (entity.Total > 1000) 
            ApplyDiscount(entity, 0.05m);
    }
    
  3. Fazer pequenos refactors contínuos
    • Quebre um método gigante em dois menores
    • Extraia uma validação repetida para uma função
    • Remova código morto

  4. Criar testes automatizados para o que é crítico

    [Fact]
    public void CalculateTotalPrice_ShouldApplyDiscount_WhenTotalGreaterThan1000()
    {
        var service = new OrderService();
        var result = service.CalculateTotalPrice(200m, 6); // 1200
        Assert.Equal(1140m, result); // 5% de desconto
    }
    

⚡ Pare de caçar a perfeição inalcançável. O verdadeiro jogo é entregar valor hoje e deixar o código preparado para evoluir amanhã.

Top comments (1)

Collapse
 
milton_camara_d8e539ac5d0 profile image
Milton Camara

sensacional!!! verdade nua e crua!