View
64
Download
1
Category
Preview:
Citation preview
Hora da aventura! Vamos melhorar seu código?!? @yuizinha
Anna "Yui" Cruz
O que contribui para um código feio?
Eu quero é terminar rápido!!!
O que contribui para um código feio?
Eu quero é terminar rápido!!!
Todo mundo faz assim!!!
O que contribui para um código feio?
Eu quero é terminar rápido!!!
Tenho que começar a fazer agora!!! Depois refatoro!
Todo mundo faz assim!!!
O que contribui para um código feio?
Eu quero é terminar rápido!!!
Pra que fazer direito? Tô de saco cheio desse
projeto já!
Tenho que começar a fazer agora!!! Depois refatoro!
Todo mundo faz assim!!!
O que contribui para um código feio?
Eu quero é terminar rápido!!!
Pra que fazer direito? Tô de saco cheio desse
projeto já!
Tenho que começar a fazer agora!!! Depois refatoro!
Todo mundo faz assim!!!
Tá tudo pronto, só falta testar!
O que contribui para um código feio?
Porque o código continua feio?
Porque o código continua feio?
●Desenvolvedores experientes saem do projeto
Porque o código continua feio?
●Desenvolvedores experientes saem do projeto
●Novos desenvolvedores entram no projeto e tem medo de modificar algo
Porque o código continua feio?
●Desenvolvedores experientes saem do projeto
●Novos desenvolvedores entram no projeto e tem medo de modificar algo
●Mito de que demora muito mais tempo
Oh não!?!?! O que podemos fazer então?
Comentários!
Código auto-explicativoUse comentários com calma, pense se são realmente necessários
Use Test Driven Development
TDDPequenas porções de código
TDDDesenvolva apenas o necessário
TDDRefatoração sem medo
TDD
RED
GREEN
REFACTOR
SOLID
ingle Responsibilitypen-Closediskov Substitutionnterface Segregationependency Inversion
Single ResponsibilityUma classe/método, uma responsabilidade
Single ResponsibilityClasses e métodos pequenos e coesos
Single ResponsibilityMais fácil de manter
Open-closedClasses abertas para extender
Open-closedClasses fechadas para modificação
Open-closedDiminui o acoplamento entre as classes
Barbara Liskov- Cientóloga da computação- Professora do MIT- Criadora da linguagem CLU- Vencedora do Prêmio Turing- Diversos artigos acadêmicos
Liskov substituitionUma classe pode ser substituida por uma subclasse
Liskov substituitionManutenção de contrato entre classes
Liskov substituitionDiminui o acoplamento, melhora o reaproveitamento
Interface segregationInterfaces especializadas
Interface segregationInterfaces sem conter métodos desnecessários
Interface segregationGerar interfaces pequenas e coesas
Dependency inversionAbstrações não devem depender de detalhes
Dependency inversionClasses de alto nível não devem depender de classes de baixo nível
Dependency inversionUm problema, uma classe
Dependency inversionMais flexibilidade para "troca" de dependências
Linkshttp://amzn.to/2dRdlafhttp://bit.ly/2dYKQb7http://amzn.to/2dTFthn
Recommended