Tech Talk Buscapé - Clean Code

50
Código Limpo @marcelotozzi | www.marcelotozzi.com [email protected] | Talk

Transcript of Tech Talk Buscapé - Clean Code

Page 1: Tech Talk Buscapé - Clean Code

Código Limpo

@marcelotozzi | www.marcelotozzi.com [email protected] | Talk

Page 2: Tech Talk Buscapé - Clean Code
Page 3: Tech Talk Buscapé - Clean Code

A cozinha...

Page 4: Tech Talk Buscapé - Clean Code
Page 5: Tech Talk Buscapé - Clean Code
Page 6: Tech Talk Buscapé - Clean Code

O código ruim já te atrapalhou?

Por que ele foi escrito assim?

Bem provável!

Page 7: Tech Talk Buscapé - Clean Code

Você achou que não teria tempo pra fazer um bom

trabalho?

Page 8: Tech Talk Buscapé - Clean Code

Seu chefe ficaria p*** se você demorasse mais por um bom

código?

Page 9: Tech Talk Buscapé - Clean Code

Saco cheio daquele código?

Page 10: Tech Talk Buscapé - Clean Code

Mais coisas pra fazer?

Page 11: Tech Talk Buscapé - Clean Code
Page 12: Tech Talk Buscapé - Clean Code

Produto extraordinário.

Vários bugs.

Release apressado.

O código ficou uma zona!

O código ruim acabou com a empresa!

Page 13: Tech Talk Buscapé - Clean Code
Page 14: Tech Talk Buscapé - Clean Code

#comofaz?

Page 15: Tech Talk Buscapé - Clean Code

+ pessoas. Não conhecem. Pressão.

Quanto mais confuso, menor a #produtividade.

piorar++

Page 16: Tech Talk Buscapé - Clean Code

Um dia alguém vai ler seu código.

Page 17: Tech Talk Buscapé - Clean Code

Regra do escoteiro

“Deixe a área do acampamento mais limpa do que como você a encontrou.”

Page 18: Tech Talk Buscapé - Clean Code

Nomes significativos

Page 19: Tech Talk Buscapé - Clean Code

Revele propósito!

Bons nomes todos entendem.

Page 20: Tech Talk Buscapé - Clean Code

Evite informações erradas

Palavras com significado que

podem desviar do que desejamos passar.

Page 21: Tech Talk Buscapé - Clean Code

Um atributo accountList...

E se não for um List?E se for uma String?

accountList.concat()? accountList.substring()?

accountList.toLowerCase()?

Page 22: Tech Talk Buscapé - Clean Code

Nomes de classes

Use substantivos como:

Client, WikiPage, Account...

Evite palavras como:

Manager, Processor, Data, Info...

Não use verbos.

Page 23: Tech Talk Buscapé - Clean Code

Nomes de métodosUse verbos:

postPayment, deletePage, save

Métodos de acessos:

get / set / is

Page 24: Tech Talk Buscapé - Clean Code

Funções

Page 25: Tech Talk Buscapé - Clean Code

Devem ser pequenas

Fazer apenas uma

coisa

Page 26: Tech Talk Buscapé - Clean Code

•Abstração maior para menor.

•O código deve poder ser narrado.

Page 27: Tech Talk Buscapé - Clean Code

Evite fazer coisas escondidas

Page 28: Tech Talk Buscapé - Clean Code

DRY

Page 29: Tech Talk Buscapé - Clean Code

Comentários

Page 30: Tech Talk Buscapé - Clean Code

“Não insira comentários num

código ruim, reescreva-o.”

Page 31: Tech Talk Buscapé - Clean Code

Comentários legais

• Licensas de software.

• //TODO’s.

• JavaDoc em APIs Públicas.

Page 32: Tech Talk Buscapé - Clean Code

Comentários ruins

Históricos de alteração.

Comentários óbvios.

Autoria.

Evite comentários se é possível usar um método

ou variável.

Page 33: Tech Talk Buscapé - Clean Code

Estruturas de dados

Page 34: Tech Talk Buscapé - Clean Code

Lei de DemeterVocê manda o cachorro andar ou as patas?

#Encapsular o comportamento e a complexidade.

Page 35: Tech Talk Buscapé - Clean Code
Page 36: Tech Talk Buscapé - Clean Code

Tratamento de erro

As coisas podem dar #errado!

Page 37: Tech Talk Buscapé - Clean Code

Use unchecked exception

Aquelas que herdam de RuntimeException.

Lembra?

Page 38: Tech Talk Buscapé - Clean Code

Não retorne null

Lance uma exception

Lance um objeto SPECIAL CASE

Page 39: Tech Talk Buscapé - Clean Code

Testes

Page 40: Tech Talk Buscapé - Clean Code

O código de teste...

Limpo com nomes significativos.

Evolução, mas sem #porcaria.

Produção fica #flexível.

Page 41: Tech Talk Buscapé - Clean Code

Os códigos de testes são tão importantes quanto o código

de produção. Não é um componente secundário.

Page 42: Tech Talk Buscapé - Clean Code

Classes

Page 43: Tech Talk Buscapé - Clean Code

1.Classes devem ser pequenas.

2.Devem ser menores ainda!!!!

Como medir o tamanho de uma classe?

Page 44: Tech Talk Buscapé - Clean Code

RESPONSABILIDADE!

Page 45: Tech Talk Buscapé - Clean Code

Cliente

cliente.AvaliarSePodePromoverParaPremium

AvaliadorDeClientePremium

avaliarSePodePromoverParaPremium(cliente)

Page 46: Tech Talk Buscapé - Clean Code

Sistema

Page 47: Tech Talk Buscapé - Clean Code

Injeção de Dependência

Page 48: Tech Talk Buscapé - Clean Code

Desenvolvimento gradual

Page 49: Tech Talk Buscapé - Clean Code

Esta fedendo, troque!

Page 50: Tech Talk Buscapé - Clean Code

Obrigado! :)