trabalho efetivo com_codigo_legado

16
Ricardo Murad

Upload: ricardo-murad

Post on 21-Jul-2015

57 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Trabalho efetivo com_codigo_legado

Ricardo Murad

Page 2: Trabalho efetivo com_codigo_legado

O que é código legado?

Page 3: Trabalho efetivo com_codigo_legado

“Código sem teste é

código ruim”

“Código legado é

simplesmente código

sem teste”

Page 4: Trabalho efetivo com_codigo_legado

Ainda que o código esteja bem

escrito, o risco de altera-lo

sem testes é muito alto.

Page 5: Trabalho efetivo com_codigo_legado

If it's not broke, don't fix it

Page 6: Trabalho efetivo com_codigo_legado

O que alterar?

Como alterar sem interferir no

comportamento existente?

Page 7: Trabalho efetivo com_codigo_legado

Edit and Pray

Edite e reze para nada

dar errado...

Sem testes unitários

Page 8: Trabalho efetivo com_codigo_legado

Cubra e modifique...

Proteja suas

alterações com

testes

Page 9: Trabalho efetivo com_codigo_legado

Ferramentas e Técnicas

Frameworks de testes

Mock Objects

Ferramentas de refatoração

Fake Objects

Page 10: Trabalho efetivo com_codigo_legado

Como escrever testes

para um código cheio de dependências?

“Grande parte do

trabalho com código legado

envolve a eliminação de dependências”

Page 11: Trabalho efetivo com_codigo_legado

Parameterize Constructor

Page 12: Trabalho efetivo com_codigo_legado

Extract Interface

Page 13: Trabalho efetivo com_codigo_legado

Extract Interface

*no eclipse: ALT+SHIFT+T � Extract Interface

Page 14: Trabalho efetivo com_codigo_legado

Identifique pontos de alteração

Encontre os pontos de testes

Escreva testes

Faça alterações e refatore

Elimine dependências

Algoritmo de trabalho com código legado

Page 15: Trabalho efetivo com_codigo_legado

+ =

Page 16: Trabalho efetivo com_codigo_legado

Obrigado!