CLEAN CODE
Simplificado
TE ENSINO EM
5 MINUTOS
PARE COM ISSO !!!
10 DICAS DE
CLEAN CODE
✅
1 - ELIMINE
NÚMEROS E PALAVRAS
MAGICAS
✅
2 - SUBSTITUA PARÂMETROS
BOOLEANOS POR ENUMS
✅
3 - PARA FUNÇÕES COM
MÚLTIPLOS PARÂMETROS
USE OBJETOS
✅
4 - USE OBJETOS PARA
REMOVER IFS
✅
5 - USE EARLY RETURN
PARA REDUZIR A
INDENTAÇÃO DOS IFS
❌
✅
6 - USE CONST PARA TORNAR
SEUS IF MAIS LEGÍVEIS
✅
7 - ESCREVA CÓDIGO
AUTOEXPLICATIVO E
ELIMINE COMENTÁRIOS
✅
8 - UTILIZE HAS E IS PARA
TORNAR SEUS BOOLEANOS
MAIS DESCRITIVOS
✅
9 - CRIE UM PADRÃO DE
NOMENCLATURA
10 - UTILIZE MÉTODOS DO
JAVASCRIPT PARA MELHORAR
A LEGIBILIDADE
✅
CLEAN CODE
na Pratica
1pt - Nomes significativos
Quanto nome ruim
em um só lugar
Isaac Gomes
CLEAN CODE
Clean Code é um conceito que se
refere à escrita de código de forma
clara, organizada e legível, facilitando
a manutenção, entendimento e
evolução de sistemas de software. A
ideia central é que o código deve ser
simples e direto, evitando
complexidade desnecessária e
favorecendo a legibilidade para outros
desenvolvedores.
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
Nomes que revelam seus Propósitos
pensemos um cenário onde um
usuário vai ter acesso a um recurso
específico no premium da categoria
dele... qual seria um bom nome para
a const que guarda o user???
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
Nomes que revelam seus Propósitos
❌ - pouco descritivo
❌ - comentario para se explicar
✅ - autoexplicativo
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
Evite Informações Erradas
pensemos em um cenário onde
temos que filtrar usuários banidos
pense em um nome que pode te
induzir ao erro
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
Evite Informações Erradas
❌ - nome informa errado
✅ - nome que informa de maneira correta
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
Distinções significativas
evite usar termos similares
para informações distintas
deixe o mais legível possível
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
Distinções significativas
❌ - nomes similares
✅ - nomes distintos
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
nomes pronunciáveis
use nomes pronunciáveis,
evite abreviações que podem
gerar confusões
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
nomes pronunciáveis
❌ - contem abreviações confusas
✅ - sem abreviações e claro
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
nomes passíveis de busca
use nomes descritivos que
podem ser pesquisados com
facilidade
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
nomes passíveis de busca
❌ - nome sem busca clara
✅ - nome passivel de busca
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
Não de uma de espertinho
Não de uma de espertinho evite nomes
genéricos ou vagos... mesmo que tenha
contexto da criação escreva de maneira
que qualquer um possa ler
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
Não de uma de espertinho
❌ - nome generico
✅ - nome explicativo
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
Não faça trocadilhos
Não coloque nomes engraçadinhos
ou com mais de uma interpretação
possível seja objetivo e claro
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
Não faça trocadilhos
❌ - O nome DateShifter parece engraçado ou
criativo, mas o termo "shifter" pode ser
confundido com outras coisas (por exemplo,
manipulação de bits ou mudanças de estado)
e não comunica diretamente que a classe
lida com cálculos de datas.
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
Não faça trocadilhos
✅ - O nome DateCalculator comunica
claramente que a classe realiza cálculos
com datas. Além disso, o nome do método
addDaysToDate explica explicitamente o
que o método faz, tornando o código mais
fácil de entender para todos que o leem.
Isaac Gomes
Capitulo 1
NOMES SIGNIFICATIVOS
Não faça trocadilhos
✅ - O nome DateCalculator comunica
claramente que a classe realiza cálculos
com datas. Além disso, o nome do método
addDaysToDate explica explicitamente o
que o método faz, tornando o código mais
fácil de entender para todos que o leem.
Isaac Gomes
COMO CRIAR NOMES
CONSISTENTES NOS
SEUS PROJETOS
UMA DAS COISAS MAIS
DIFÍCEIS EM PROGRAMAÇÃO
É DAR BONS NOMES
até pq temos
muitos nomes
possíveis para a
mesma coisa
para resolver isso
podemos criar padrões
que facilitem essa escrita
POST - CREATE
PUT - UPDATE
DELETE - DELETE
GET - GET
- ação
- escopo
updateUser()
createUser()
deleteUser()
getUser()
PUT - UPDATE
✅
POST - CREATE
✅
DELETE - DELETE
✅
GET - GET
✅
📝
JA SE DEPAROU COM
ESSE TIPO DE PROBLEMA?
PROCESSA O QUÊ
EXATAMENTE?
QUAL É O ESCOPO?
QUAL É A FINALIDADE?
😌
MAS RELAXA, TEM
UM COMENTÁRIO
EXPLICANDO
Ao chamar a função,
verei o comentário?
Não, mas você
pode abrir o
arquivo para ver.
😌
VAMOS CRIAR CÓDIGOS
QUE SE DOCUMENTEM
POR SI SÓ
o que faz?
Formata
Formata o que?
Usuário
Formata o Usuario
para onde ?
exibição
Que lindo cara!
Agora, ao chamar, fica
claro o que faz
então não posso
usar comentários?
😄
Pode usar, mas apenas
quando houver uma
necessidade real.
😂
Agora se vc faz isso...
melhore por favor
PARE DE ESCREVER
ESSE TIPO DE FUNÇÃO
Vamos analisar os
problemas dessa função
1 - parâmetros não nomeados
2 - Passar parâmetros
booleanos pode dificultar
a compreensão do código,
pois não deixa claro o
propósito do valor.
Resolvendo
1 -Vamos organizar nossos
parâmetros usando um objeto
com nomes descritivos.
2 - usaremos um enum para
tornar o código ainda mais
descritivo e fácil de entender.
A tipagem já mostra
que é um array.
O nome não indica
claramente o propósito
Ao utilizar algo como
fetchingUsers, você acaba
abrindo espaço para a
criação de funções como...
❌
Observe que todos
realizam buscas, porém
não há um padrão
definido para a
nomenclatura.
✅
Agora, alteramos tudo
para usar o prefixo do
verbo "get", o que
resultou em um código
mais padronizado e claro
✅
Agora, vamos alterar o
retorno para um objeto,
utilizando nomes que
facilitem o seu uso e
eliminem redundâncias
como "users", "products",
etc.
❌
Para evitar a necessidade de
renomeação, evite o uso de
export default.
✅
Agora, além de utilizarmos o
export, obtemos um retorno
mais claro e objetivo.
PARE DE ESCREVER
❌
IFS DESSA MANEIRA
hadouken
use early return
✅
MELHORANDO OS NOMES
DAS SUAS VARIÁVEIS
UM ERRO COMUM É NOMEAR FUNÇÕES
DE FORMA QUE NÃO DEIXEM CLARO
QUE RETORNAM UM BOOLEAN.
"VERIFICAR ACESSO" PODE
PARECER UM BOM NOME, MAS NÃO
DESCREVE CLARAMENTE A
FUNCIONALIDADE QUE ELE REALIZA.
TEM UM JEITO MELHOR ???
"É ADMINISTRADOR" TORNA A FUNÇÃO
INTUITIVA E SEU RETORNO BOOLEANO,
TORNANDO O COMPORTAMENTO
PREVISÍVEL.
SE O BOOLEANO ESTIVER
RELACIONADO A POSSE OU
EXISTÊNCIA, UTILIZE "HAS"
OBSERVE COMO O USO DE "IS" E "HAS"
TRAZ MAIS CLAREZA AOS NOSSOS
BOOLEANOS, TORNANDO O CÓDIGO MAIS
SIMPLES E FÁCIL DE LER.
Gostou?
Curta
Compartilhe
Salve
Ative as notificações