Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao...
Transcript of Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao...
![Page 1: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/1.jpg)
![Page 2: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/2.jpg)
Thiago Barradas
Software Enginner | Mundipagg
[ Web Applications ] [ ASP .NET ]
[ API RESTful ] [ Microsoft ♥ Linux ]
[ Elasticsearch ] [ Docker ]
[ DevOps ] [ Agile ]
LinkedIn: thiagobarradas
(21) 99329-9143
![Page 3: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/3.jpg)
CLEAN CODE
POR UM MUNDO COM
CÓDIGOS MELHORES
![Page 4: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/4.jpg)
POR QUE
VOCÊ ESTÁ AQUI?
![Page 5: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/5.jpg)
![Page 6: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/6.jpg)
PRECISAMOS MUITO DE
UM MUNDO COM
CÓDIGOS MELHORES
![Page 7: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/7.jpg)
Robert C. Martin(Uncle Bob)
The Clean Coder
![Page 8: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/8.jpg)
Princípios do Clean Code
Eficiente
Simples
Direto ao ponto
Fácil leitura
Sem dependências
Fácil manutenção
Padrões definidos
Sem duplicação
Coberto de testes
Elegante
![Page 9: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/9.jpg)
“Qualquer tolo consegue escrever
código que um computador entende.
Bons programadores escrevem código
que humanos podem entender.”
Martin Fowler
![Page 10: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/10.jpg)
POSSO VER SEU CÓDIGO?
![Page 11: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/11.jpg)
![Page 12: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/12.jpg)
“Ainda ta bagunçado, depois vou
melhorar e refatorar o código.”
![Page 13: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/13.jpg)
FILHO FEIO
NÃO TEM PAI!
![Page 14: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/14.jpg)
“Fiz o meu melhor dentro do tempo que eu tinha.”
“Mas o prazo era extremamente curto.”
“Meu gestor me faz pressão o tempo inteiro.”
“Preciso entregar, preciso ser muito produtivo.”
![Page 15: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/15.jpg)
NÃO EXISTE DESCULPA
PARA UM CÓDIGO RUIM!
![Page 16: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/16.jpg)
TENHA ORGULHO DO SEU CÓDIGO!
![Page 17: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/17.jpg)
OK. CHEGA DE LERO-LERO,
VAMOS AO QUE INTERESSA!
![Page 18: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/18.jpg)
#1
NOMENCLATURA
![Page 19: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/19.jpg)
Nomenclatura
Use nomes que revelem a intenção;
Use nomes pronunciáveis;
Não importa que o nome seja grande;
Mantenha o padrão, sempre;
![Page 20: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/20.jpg)
Nomenclatura
![Page 21: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/21.jpg)
#2
Classes
![Page 22: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/22.jpg)
Classes
Ser representadas por substantivos;
Nome claro ao seu contexto;
Não importa que o nome seja grande;
Mantenha o padrão, sempre;
![Page 23: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/23.jpg)
Classes
![Page 24: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/24.jpg)
#3
Métodos
![Page 25: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/25.jpg)
Métodos
Devem ser representados por verbos;
Nome claro ao seu contexto;
Devem ser pequenos. Quanto menor, melhor;
Extraia sempre que puder em métodos auxiliares,
seja um método privado ou utilitários;
![Page 26: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/26.jpg)
Métodos
Um método deve fazer apenas uma coisa. Uma;
Argumentos booleanos não costumam ser elegantes.
Muitos parâmetros devem ser substituídos por
objetos.
Não importa que o nome seja grande;
Mantenha o padrão, sempre;
![Page 27: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/27.jpg)
Métodos
![Page 28: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/28.jpg)
Métodos
![Page 29: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/29.jpg)
#4
Condições
![Page 30: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/30.jpg)
Condições
Sempre que possível, extrai para métodos
privados;
Não importa que o nome seja grande;
Mantenha o padrão, sempre;
![Page 31: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/31.jpg)
Condições
![Page 32: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/32.jpg)
#5
Objetos e Estruturas de Dados
![Page 33: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/33.jpg)
Objetos e Estruturas de Dados
Métodos de C;
Objetos criados por M;
Objetos passados por parâmetro para M;
Objetos em propriedades de instâncias de C.
Basicamente devem seguir a Lei de Demeter:
Um método M de uma classe C só deve conhecer:
![Page 34: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/34.jpg)
#6
Abstração
![Page 35: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/35.jpg)
Abstração
Tente ao máximo generalizar suas classes;
Abstraia em quantos níveis for preciso;
Não importa que o nome seja grande;
Mantenha o padrão, sempre;
![Page 36: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/36.jpg)
Abstração
![Page 37: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/37.jpg)
Abstração
![Page 38: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/38.jpg)
#7
Comentários
![Page 39: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/39.jpg)
Comentários
Um código bem escrito dispensa comentários;
São aceitáveis quando há necessidade de
explicação do negócio
Também para licença de uso e documentação;
Não importa que o comentário seja grande;
Mantenha o padrão, sempre;
![Page 40: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/40.jpg)
Comentários
![Page 41: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/41.jpg)
#8
Formatação do Código
![Page 42: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/42.jpg)
Formatação do Código
Não existe um padrão definitivo para formatação;
Defina regras no time;
Tente sempre se basear no padrão que a
comunidade propõe;
Não importa que o padrão seja grande;
Mantenha o padrão, sempre;
![Page 43: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/43.jpg)
#9
Exceções
![Page 44: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/44.jpg)
Exceções
Utilize exceções específicas para seus erros;
Evite códigos de erros;
Trate exceções exclusivamente em métodos;
Não importa que o tratamento seja grande;
Mantenha o padrão, sempre;
![Page 45: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/45.jpg)
Exceções
![Page 46: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/46.jpg)
Exceções
![Page 47: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/47.jpg)
#10
Testes
![Page 48: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/48.jpg)
Testes
USE o TDD;
Se não tiver, implemente testes continuamente a
cada implementação/correção;
Use e abuse; Teste de integração, funcional, etc;
Mantenha o padrão, sempre;
![Page 49: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/49.jpg)
Testes
Fast: Testes rápidos, resultados rápidos.;
Independent: Não deve ter dependências;
Repeatable: Os testes devem funcionar em qualquer ambiente;
Self-validation: Não é necessária nenhuma validação manual;
Timely: Os testes devem ser elaborados antes do código;
Podemos seguir também o “F.I.R.S.T.”:
![Page 50: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/50.jpg)
#11
Regra do Escoteiro
![Page 51: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/51.jpg)
Regra do Escoteiro
“Deixe a área do acampamento mais limpa
do que quando e como você a encontrou.”
![Page 52: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/52.jpg)
Regra do Escoteiro
“Deixe o código mais limpo do que quando e
como você o encontrou.”
![Page 53: Apresentação do PowerPoint...2020/08/28 · Princípios do Clean Code Eficiente Simples Direto ao ponto Fácil leitura Sem dependências Fácil manutenção Padrões definidos Sem](https://reader036.fdocuments.us/reader036/viewer/2022081409/608752a9e84307301354caec/html5/thumbnails/53.jpg)