"Clean code always looks like it was written by someone who cares." — Robert C. Martin
Índice
- Introdução
- 1. Elimine Números e Palavras Mágicas
- 2. Substitua Parâmetros Booleanos por Enums
- 3. Use Objetos para Agrupar Parâmetros
- 4. Remova IFs Usando Objetos
- 5. Use Early Return
- 6. Torne seus IFs Mais Legíveis com Const
- 7. Escreva Código Autoexplicativo
- 8. Utilize "has" e "is" em Booleans
- 9. Padronize a Nomenclatura
- 10. Aproveite Métodos do JavaScript
- Dicas Extras sobre Nomes
- Conclusão
- Referências
Introdução
Clean Code é a arte de escrever código claro, organizado e legível, facilitando a manutenção e evolução de sistemas. Vamos explorar práticas essenciais com exemplos práticos e fáceis de aplicar.
1. Elimine Números e Palavras Mágicas
Evite usar valores "mágicos" diretamente no código.
Antes:
if (user.type === "P") {
//...
}
Depois:
const PREMIUM_USER = "P";
if (user.type === PREMIUM_USER) {
//...
}
2. Substitua Parâmetros Booleanos por Enums
Torne o significado explícito usando enums.
Antes:
createUser("John", true);
Depois:
const UserType = {
ADMIN: 'admin',
REGULAR: 'regular'
};
createUser("John", UserType.ADMIN);
3. Use Objetos para Agrupar Parâmetros
Melhore a legibilidade agrupando parâmetros relacionados.
Antes:
createUser("John", "Doe", 30, true);
Depois:
createUser({
firstName: "John",
lastName: "Doe",
age: 30,
isAdmin: true
});
4. Remova IFs Usando Objetos
Substitua múltiplos IFs por mapeamento de ações.
Antes:
if (userType === 'admin') { doAdminStuff(); }
else if (userType === 'guest') { doGuestStuff(); }
Depois:
const actions = {
admin: doAdminStuff,
guest: doGuestStuff
};
actions[userType]?.();
5. Use Early Return
Reduza a complexidade saindo da função o quanto antes.
Antes:
if (user) {
if (user.isActive) {
processUser(user);
}
}
Depois:
if (!user || !user.isActive) return;
processUser(user);
6. Torne seus IFs Mais Legíveis com Const
Nomeie condições para facilitar a leitura.
Exemplo:
const hasPremiumAccess = user.isPremium && user.subscriptionActive;
if (hasPremiumAccess) {
grantPremiumAccess(user);
}
7. Escreva Código Autoexplicativo
Código claro reduz a necessidade de comentários.
Antes:
// Verifica se o usuário é admin
if (user.role === 'admin') {...}
Depois:
const isAdmin = user.role === 'admin';
if (isAdmin) {...}
8. Utilize "has" e "is" em Booleans
Prefira prefixos que indiquem claramente valores booleanos.
Antes:
function checkUserAccess(user) {...}
Depois:
function isUserAuthorized(user) {...}
9. Padronize a Nomenclatura
Use convenções claras para nomear funções e métodos.
Exemplos:
getUser();
createUser();
updateUser();
deleteUser();
10. Aproveite Métodos do JavaScript
Simplifique seu código usando métodos nativos.
Antes:
let activeUsers = [];
for (let i = 0; i < users.length; i++) {
if (users[i].isActive) {
activeUsers.push(users[i]);
}
}
Depois:
const activeUsers = users.filter(user => user.isActive);
Dicas Extras sobre Nomes
- Use Nomes Significativos
// Ruim
const d = getData();
// Bom
const userData = getUserData();
- Evite Informações Erradas
// Ruim
const activeUsers = bannedUsers.filter(...);
// Bom
const bannedUsers = users.filter(...);
- Faça Distinções Claras
// Ruim
const data1 = getUserData();
const data2 = getAdminData();
// Bom
const userData = getUserData();
const adminData = getAdminData();
- Use Nomes Pronunciáveis e Buscáveis
// Ruim
const usrInf = getUsrInf();
// Bom
const userInfo = getUserInfo();
- Evite Trocadilhos
// Ruim
const DateShifter = ...;
// Bom
const DateCalculator = ...;
Conclusão
Clean Code não é apenas estética: é comunicação. Código limpo facilita manutenções futuras, acelera novos desenvolvedores no projeto e torna a evolução de sistemas mais sustentável.
Adote essas práticas aos poucos e veja a diferença na qualidade dos seus projetos!