Regra
Remover comentários código comentados
comentados código cria ruído, torna-se obsoleto,
e pertence ao versão histórico histórico, não o base de código.Introdução
Código comentado se acumula quando os desenvolvedores não têm certeza se precisarão da lógica antiga mais tarde. Alguém comenta uma função "apenas por precaução" em vez de excluí-la, e ela permanece lá para sempre. Ninguém sabe se este código ainda funciona, por que foi desativado ou se é seguro removê-lo. A base de código se enche de fantasmas de implementações passadas que desviam a atenção do que realmente roda em produção.
Por que isso importa
Manutenibilidade do código: Código comentado força os leitores a filtrar mentalmente o que é real versus o que está inativo. Durante a revisão de código, não é possível saber se esses blocos são experimentos temporários, opções importantes de rollback ou resquícios esquecidos de anos atrás. Esse ruído dificulta a compreensão da lógica real, a localização de seções de código relevantes e a revisão significativa das alterações.
Implicações de segurança: Verificações de autenticação, lógica de validação ou recursos de segurança comentados revelam que essas proteções existiam, mas foram desabilitadas deliberadamente. Se o código comentado contiver credenciais, chaves de API ou URLs internas, você estará enviando esses dados sensíveis em texto simples. Atacantes que revisam sua base de código veem exatamente quais medidas de segurança você considerou e removeu.
Confusão no controle de versão: Os diffs do Git ficam poluídos com blocos comentados que não estão realmente mudando. Quando você precisa rastrear quando a lógica mudou ou por que uma funcionalidade funciona de certa maneira, alternativas comentadas obscurecem o histórico real. A busca na base de código retorna correspondências em código morto, desperdiçando tempo investigando caminhos que não são executados.
Exemplos de código
❌ Não-conforme:
async function createUser(userData) {
// const hashedPassword = await bcrypt.hash(userData.password, 10);
const user = await db.users.create({
email: userData.email,
password: userData.password,
// password: hashedPassword,
role: userData.role || 'user'
});
// await sendWelcomeEmail(user.email);
// await notifyAdmins(user);
// Old validation approach
// if (!isValidEmail(user.email)) {
// throw new Error('Invalid email');
// }
return user;
}
Por que está errado: O hash de senha comentado revela que as senhas são armazenadas em texto simples, uma vulnerabilidade de segurança crítica. Ninguém sabe se o e-mail de boas-vindas e a notificação do administrador devem ser ativados, e a validação antiga sugere que a validação de e-mail pode estar faltando.
✅ Compatível:
async function createUser(userData) {
if (!isValidEmail(userData.email)) {
throw new Error('Invalid email');
}
const hashedPassword = await bcrypt.hash(userData.password, 10);
const user = await db.users.create({
email: userData.email,
password: hashedPassword,
role: userData.role || 'user'
});
await sendWelcomeEmail(user.email);
await notifyAdmins(user);
return user;
}
Por que isso importa: A função é clara e completa, mostrando exatamente o que é executado em produção. A validação de e-mail é executada primeiro, as senhas são devidamente hashed, e todas as notificações são enviadas sem ambiguidade sobre o que está habilitado.
Conclusão
Exclua o código em vez de comentá-lo. Seu sistema de controle de versão preserva cada linha escrita, acessível através de git log e git blame quando você precisar. Manter código comentado no repositório apenas cria ruído que obscurece a lógica real e torna sua base de código mais difícil de navegar.
.avif)
