Top Banner
Bad Smells Bad Smells in Code in Code Lourdilene Souza
20

Bad smells no código

Apr 14, 2017

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Bad smells no código

Bad Smells Bad Smells in Codein Code

Lourdilene Souza

Page 2: Bad smells no código

AgendaAgenda

✔ Bad Smells✔ Alguns tipos de bad smells✔ Exemplo✔ Refatoração

Page 3: Bad smells no código

O que são O que são Bad Smells ?Bad Smells ?

Page 4: Bad smells no código

“Maus cheiros no código são sintomas de má concepção ou implementação de escolhas" [ Martin Fowler ]

Page 5: Bad smells no código

Por que conhecer e Por que conhecer e evitar ?evitar ?

Page 6: Bad smells no código

Compreensão

Page 7: Bad smells no código

Produtividade

Page 8: Bad smells no código

Alguns Alguns Bad SmellsBad Smells

Page 9: Bad smells no código

Code SmellsCode Smells

ComentáriosComentários

"Qualquer pessoa é capaz de escrever código que um computador possa entender. Bons programadores escrevem código que seres humanos podem entender." [Martin Fowler, Refactoring: Improving the Design of Existing Code]

Page 10: Bad smells no código

Code SmellsCode Smells

Muitos parâmetros no MétodoMuitos parâmetros no Método

✔ Aumento da complexidade✔ Encapsular em objeto

Heranças paralelasHeranças paralelas

✔ Hierarquia em um única classe✔ Patterns

Page 11: Bad smells no código

Code SmellsCode Smells

Código duplicadoCódigo duplicado

✔ DRY – Don’t Repeat Yourself!✔ Retrabalho✔ Difícil de manter✔ Pequenas variações

Page 12: Bad smells no código

Code SmellsCode Smells

Complexidade CondicionalComplexidade Condicional✔ Grandes blocos if/else/switch

Tiro de EspingardaTiro de Espingarda

✔ Mudanças em uma classe com impacto em inúmeras outras.

✔ Refatorar para centralizar em uma classe ou usar herança.

Page 13: Bad smells no código

Code SmellsCode Smells

Classe grandeClasse grande

✔ Classes grandes, como métodos longos, são difíceis de ler, compreender e debugar.

✔ Será que a classe tem responsabilidades demais?

✔ A classe grande pode ser reestruturada ou dividida em classes menores?

Page 14: Bad smells no código

Bad Code Smells [Martin Fowler]Bad Code Smells [Martin Fowler]✔ DUPLICATED CODE✔ LONG METHOD✔ LARGE CLASS✔ LONG PARAMETER LIST✔ DIVERGENT CHANGE✔ SHOTGUN SURGERY✔ FEATURE ENVY✔ DATA CLUMPS✔ PRIMITIVE OBSESSION✔ SWITCH STATEMENTS✔ PARALLEL INHERITANCE HIERARCHIES✔ LAZY CLASS✔ SPECULATIVE GENERALITY✔ TEMPORARY FIELD✔ MESSAGE CHAINS✔ MIDDLE MAN✔ INAPPROPRIATE INTIMACY✔ ALTERNATIVE CLASSES WITH DIFFERENT INTERFACES✔ INCOMPLETE LIBRARY CLASS✔ DATA CLASS✔ REFUSED BEQUEST✔ COMMENTS

Page 15: Bad smells no código

Como evitar ?Como evitar ?

✔ Pareamento✔ Code Review✔ Padronização✔ Pensar na manutenção no início do

projeto✔ Qualificação

Page 16: Bad smells no código

Classe grandeClasse grande

Page 17: Bad smells no código

Classe grandeClasse grande

Page 18: Bad smells no código

Classe grandeClasse grande

Page 19: Bad smells no código

ReferênciasReferênciashttp://martinfowler.com/https://sourcemaking.com/

Page 20: Bad smells no código

Ta Safo ?!Ta Safo ?!Obrigada. Obrigada.

http://proex.ufpa.br/PRINCIPAL/ http://lourdilene.blogspot.com.br/