"Clean code always looks like it was written by someone who cares." — Robert C. Martin


Índice


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!


Referências