DEV Community

Humberto Oliveira Barbosa
Humberto Oliveira Barbosa

Posted on • Edited on

Clean Code, para que serve?

O conceito de Clean Code surgiu pela primeira vez no livro Clean Code: A Handbook of Agile Software Craftsmanship, lançado em 2008. A principal sacada desse método é simples: o maior gargalo no desenvolvimento de software não é a escrita do código, mas sim a sua manutenção.

E tem um dado que comprova isso: a proporção média entre leitura e escrita de código é de 10 para 1. Ou seja, os desenvolvedores passam 10 vezes mais tempo tentando entender um código existente do que escrevendo algo novo. Se o código for mal feito, essa proporção só piora.

O Pesadelo do Código Bagunçado

Se você já trabalhou como dev, provavelmente já passou por essa experiência: entra na empresa e o código do sistema é tão confuso que parece um ritual de iniciação. Você pensa: "Com o tempo, vou entender isso aqui...", mas os meses passam e você continua perdido. As classes são gigantescas, cheias de código duplicado, sem padrões, sem testes e, claro, qualquer mudança em um arquivo quebra outra coisa do outro lado do sistema.

E o pior? Só uma pessoa sabe mexer naquela classe gigante, virando um gargalo para a equipe inteira (e para a própria vida dele, porque vai passar anos dando manutenção naquele código legado). A complexidade cresce, a dívida técnica explode e a cada deploy, um desenvolvedor sofre um mini infarto.

Agora pensa no custo disso: qualquer nova funcionalidade vira um inferno para implementar. O tempo de manutenção aumenta, o desenvolvedor gasta mais tempo procurando e tentando entender o código do que programando de fato, e o suporte fica sobrecarregado porque o sistema vive quebrando.

Se você acha que qualidade de código é besteira, saiba que sua empresa está jogando dinheiro fora.

Como Saber se um Código é Ruim?

Simples: se você abre o editor de código e xinga quem escreveu aquilo, a qualidade está ruim.

Como Escrever um Código Limpo?

Regra do Escoteiro

Os escoteiros têm um princípio básico: deixe o lugar mais limpo do que encontrou.

Aplique isso na programação: sempre que mexer em um código, saia deixando ele melhor do que antes.

Regras Essenciais de Design

1. Mantenha dados de configuração no alto nível

  • Evite sobrescrever configurações dentro de métodos (exemplo: Controllers).

2. Use Polimorfismo no lugar de IFs

  • Muitos IFs aumentam a complexidade do código. Sempre que possível, substitua por polimorfismo.

3. Evite dependências desnecessárias

  • Utilize Injeção de Dependência (DI) para manter o código desacoplado.

4. Respeite a Lei de Demeter

  • Cada unidade do código deve conhecer apenas as entidades próximas.
  • Evite acoplamentos desnecessários, ou seja, nada de chamar métodos de objetos que você nem deveria conhecer.

Como Escrever Código Fácil de Entender?

1. Seja consistente

Se algo é feito de uma forma no código, repita esse padrão no resto do sistema.

2. Use nomes descritivos

Nada de x, obj1 ou dataFinal. Prefira nomes que façam sentido para quem vai ler.

3. Evite condicionais negativas

O uso de ! pode passar despercebido e causar confusão. Prefira sempre lógica positiva.

4. Evite obsessão por tipos primitivos

Se um dado precisa de regras específicas, crie Value Objects ao invés de usar apenas tipos primitivos.

5. Evite código dependente de estados internos

Não escreva métodos que dependam de variáveis internas da classe para funcionar corretamente.

Exemplo ruim:

class Student {
  public IsSubscriber: boolean;
  public Xpto() : void {
    if (this.IsSubscriber) { 
      // Só executa se for assinante         
    }
  }
Enter fullscreen mode Exit fullscreen mode

Como Nomear as Coisas do Jeito Certo?

  • Escolha nomes pronunciáveis e buscáveis.
  • Evite duplicação de strings (use constantes).
  • Não use prefixos desnecessários (clsCustomer, strNome).
  • Mantenha nomes simples e claros.

Como Escrever Funções e Métodos Enxutos?

1. Funções pequenas e focadas

  • Cada função deve fazer apenas uma coisa e fazer bem.
  • Se precisar de muitos parâmetros, talvez seja hora de refatorar.

2. Evite efeitos colaterais

  • Funções não devem alterar estados de outros objetos sem necessidade (side effects).

3. Não tome decisões desnecessárias

  • Métodos como CreateOrUpdate(user, create) são ruins.
  • Divida as responsabilidades em métodos separados.

Exemplo ruim:

class UserRepository {
  public CreateOrUpdate(user: User, create: boolean) : Promise < User > {
    if (create) {} else {...
    }
  }
Enter fullscreen mode Exit fullscreen mode

Comentários: Quando São Necessários?

Um código bom explica a si mesmo. Se você sente necessidade de comentar demais, seu código provavelmente não está claro o suficiente.

Evite:

❌ Comentários redundantes

❌ Comentários para fechar blocos

❌ Códigos comentados que nunca serão usados

Como Estruturar um Código Bem Organizado?

Separe conceitos verticalmente (pastas organizadas por contexto ou feature).

Declare variáveis perto do uso (nada de acumular tudo no topo).

Agrupe funcionalidades similares dentro de um objeto.

Mantenha poucas e curtas linhas (código longo dificulta manutenção).

Ordene funções de cima para baixo (as principais primeiro).

Evite alinhamento horizontal excessivo:

// Evite 
const user     = 'fulano'; 
const userName = 'ciclano';
Enter fullscreen mode Exit fullscreen mode

Use espaçamentos corretamente para melhorar a leitura.

Testes: O Código Também Precisa Ser Testado

  • 1 assert por teste → Testes devem ser específicos.
  • Legibilidade → Testes são código, e devem ser organizados.
  • Independência → Um teste não deve depender de outro.
  • Repetitividade → O mesmo teste deve rodar com parâmetros diferentes.

Conclusão

Código limpo não é luxo, é necessidade. Ele reduz custos, melhora a produtividade e torna seu trabalho mais fácil e menos estressante.

Se você quer melhorar seu código, comece aplicando pequenos ajustes no seu dia a dia. Use boas práticas, evite atalhos sujos e, sempre que possível, deixe o código melhor do que encontrou.

Agora, sem desculpas. Bora limpar esse código! 🚀

Referências

Playwright CLI Flags Tutorial

5 Playwright CLI Flags That Will Transform Your Testing Workflow

  • 0:56 --last-failed: Zero in on just the tests that failed in your previous run
  • 2:34 --only-changed: Test only the spec files you've modified in git
  • 4:27 --repeat-each: Run tests multiple times to catch flaky behavior before it reaches production
  • 5:15 --forbid-only: Prevent accidental test.only commits from breaking your CI pipeline
  • 5:51 --ui --headed --workers 1: Debug visually with browser windows and sequential test execution

Learn how these powerful command-line options can save you time, strengthen your test suite, and streamline your Playwright testing experience. Click on any timestamp above to jump directly to that section in the tutorial!

Watch Full Video 📹️

Top comments (0)

Playwright CLI Flags Tutorial

5 Playwright CLI Flags That Will Transform Your Testing Workflow

  • 0:56 --last-failed: Zero in on just the tests that failed in your previous run
  • 2:34 --only-changed: Test only the spec files you've modified in git
  • 4:27 --repeat-each: Run tests multiple times to catch flaky behavior before it reaches production
  • 5:15 --forbid-only: Prevent accidental test.only commits from breaking your CI pipeline
  • 5:51 --ui --headed --workers 1: Debug visually with browser windows and sequential test execution

Learn how these powerful command-line options can save you time, strengthen your test suite, and streamline your Playwright testing experience. Click on any timestamp above to jump directly to that section in the tutorial!

Watch Full Video 📹️

👋 Kindness is contagious

Engage with a wealth of insights in this thoughtful article, valued within the supportive DEV Community. Coders of every background are welcome to join in and add to our collective wisdom.

A sincere "thank you" often brightens someone’s day. Share your gratitude in the comments below!

On DEV, the act of sharing knowledge eases our journey and fortifies our community ties. Found value in this? A quick thank you to the author can make a significant impact.

Okay