Código complexo, é sinal que foi escrito por um bom programador?
Essa experiência trouxe à tona uma reflexão importante: "Código complexo é sinônimo de bom programador?"
Segunda-feira, 25 de novembro de 2024.
8:17 p.m. No escritório cansado… E nessa carta contarei o motivo.

Hoje finalizei um refactoring daqueles. Foram dias de imersão total: testando, caçando bugs, corrigindo, testando novamente e, claro, quebrando as complexidades que surgiam pelo caminho. Refatorar é, sem dúvida, uma das atividades que mais gosto de fazer. Por mais curioso que pareça, sinto-me mais desafiado ao pegar algo que já está "pronto" e precisa ser reorganizado, reescrito e reimaginado do que ao criar uma funcionalidade do zero. Existe um tipo de satisfação única em transformar caos em clareza.
O cenário desta vez envolvia um código antigo. Ele foi escrito há algum tempo por um desenvolvedor experiente, mas, ele saiu da equipe e precisei dar manutenção. Quando foi revisitado, as consequências começaram a aparecer: tarefas incompletas, bugs que pareciam invisíveis à primeira vista, mas surgiam durante os testes, e uma estrutura que dificultava qualquer tentativa de modificação ou extensão.
Esse tipo de situação traz uma questão instigante: “Código complexo é sinônimo de bom programador?”
No início da carreira, muitos desenvolvedores associam complexidade a habilidades avançadas. Afinal, quem cria algo que ninguém entende deve ser um gênio, certo? Errado.
A Comunicação Intrínseca do Código
Assim como explicar um conceito complexo de maneira clara é essencial para uma boa comunicação, escrever código de forma simples é um reflexo direto dessa habilidade.
Martin Fowler, um dos maiores nomes no campo do design de software, ressalta que a simplicidade é uma meta contínua da refatoração. Ele destaca que “código simples é aquele que pode ser entendido por qualquer desenvolvedor da equipe, independentemente de quem o escreveu.”
Já Uncle Bob, no clássico Clean Code, vai direto ao ponto: o código é, antes de tudo, uma ferramenta de comunicação. Quando mal escrito, ele se torna um idioma confuso, que exige decifração em vez de compreensão. E aí mora o problema: se o código é difícil de ler, ele será ainda mais difícil de modificar.
Imagine que você está em um time onde ninguém entende bem como um sistema funciona. O resultado? As mudanças são feitas com medo, os erros se acumulam e o progresso trava. Um código simples não é apenas uma escolha técnica, mas uma escolha estratégica.
O Custo Humano da Complexidade
Código ruim não afeta apenas o software; ele afeta diretamente as pessoas que trabalham com ele.
Abra o editor. Veja um arquivo gigante, com nomes de variáveis que não fazem sentido, lógica duplicada e regras de negócio espalhadas por todos os lados. Você já sentiu essa angústia? Esse é o efeito de um código mal escrito.
A complexidade desnecessária desgasta os desenvolvedores de maneiras sutis, mas perigosas:
Desmotivação: É frustrante trabalhar em algo que parece impossível de entender.
Atrasos: Horas são perdidas tentando decifrar o código, em vez de criar novas soluções.
Burnout: A pressão para entregar, somada ao desgaste mental de lidar com complexidade desnecessária, é uma receita para o esgotamento.
Rotatividade: Quem tem escolha prefere sair de um ambiente assim do que permanecer lutando contra o código todos os dias.
Um código claro e bem organizado, por outro lado, é como uma conversa fluida entre programadores. Ele inspira confiança, reduz o estresse e cria um senso de propriedade dentro do time.
O Processo de Refatoração
Refatorar um código exige uma técnica para que você não acabe piorando o que já está ruim.
Aqui está um esquema simplificado do processo que segui nesta última refatoração,
Cada etapa é fundamental, e pular qualquer uma delas pode resultar em uma refatoração incompleta ou, pior, na introdução de novos problemas.
A Simplicidade Como Meta
No final das contas, refatorar um código não é apenas sobre melhorar o software; é sobre criar um ambiente de trabalho mais saudável e eficiente.
Como desenvolvedores, nosso trabalho é resolver problemas, e não criar novos. Um código claro é o maior presente que podemos dar à equipe, porque ele preserva o foco no que realmente importa: inovar, entregar valor e crescer como time.
Por isso, da próxima vez que você se deparar com um código confuso, pergunte-se: “Como posso torná-lo melhor?”
Porque, ao melhorar o código, você não está apenas resolvendo um problema técnico; está elevando todo o ecossistema ao seu redor.
Leonardo da Vinci costumava afirmar que “a simplicidade é o último grau da sofisticação”
9:05 pm
Daniel.