Clean Code não significa código pronto para produção
Todo desenvolvedor aprende a escrever código limpo.
Funções pequenas, nomes descritivos, SOLID, testes, baixo acoplamento... tudo isso realmente importa.
Mas existe um problema: código limpo não significa código preparado para produção.
Um exemplo clássico é o N+1 Query Problem.
Imagine uma consulta que busca 500 produtos. Em vez de executar uma única consulta (ou duas, usando eager loading), a aplicação faz uma consulta para os produtos e mais uma para cada categoria.
Resultado?
1 + 500 = 501 consultas
Em desenvolvimento, com poucos registros, dificilmente alguém percebe.
Em produção, sob centenas de usuários simultâneos, essas consultas extras começam a disputar conexões com o banco de dados, aumentam a latência e podem derrubar toda a aplicação.
E o N+1 é apenas um sintoma.
Problemas como índices ausentes, "JOIN"s mal planejados, SELECT * desnecessários, falta de observabilidade e ausência de testes de carga costumam aparecer apenas quando o sistema encontra usuários reais.
Com a popularização de ferramentas como GitHub Copilot, Cursor e Claude Code, ficou ainda mais fácil produzir código bonito. Mas nenhuma IA conhece o tamanho das suas tabelas, o volume de acessos ou os gargalos da sua infraestrutura.
No fim das contas, produção não se importa com a elegância do código.
Ela se importa com o comportamento dele sob pressão.
Escrevi um artigo aprofundando esse assunto, mostrando exemplos em PHP, Python e JavaScript, além de discutir N+1 Query, lazy loading, eager loading, observabilidade e a importância de pensar além do código.
🔗 https://thiagoandre.dev/pt-br/codigo-limpo-nao-significa-pronto-para-producao