trabalho efetivo com_codigo_legado
TRANSCRIPT
![Page 1: Trabalho efetivo com_codigo_legado](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/1.jpg)
Ricardo Murad
![Page 2: Trabalho efetivo com_codigo_legado](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/2.jpg)
O que é código legado?
![Page 3: Trabalho efetivo com_codigo_legado](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/3.jpg)
“Código sem teste é
código ruim”
“Código legado é
simplesmente código
sem teste”
![Page 4: Trabalho efetivo com_codigo_legado](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/4.jpg)
Ainda que o código esteja bem
escrito, o risco de altera-lo
sem testes é muito alto.
![Page 5: Trabalho efetivo com_codigo_legado](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/5.jpg)
If it's not broke, don't fix it
![Page 6: Trabalho efetivo com_codigo_legado](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/6.jpg)
O que alterar?
Como alterar sem interferir no
comportamento existente?
![Page 7: Trabalho efetivo com_codigo_legado](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/7.jpg)
Edit and Pray
Edite e reze para nada
dar errado...
Sem testes unitários
![Page 8: Trabalho efetivo com_codigo_legado](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/8.jpg)
Cubra e modifique...
Proteja suas
alterações com
testes
![Page 9: Trabalho efetivo com_codigo_legado](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/9.jpg)
Ferramentas e Técnicas
Frameworks de testes
Mock Objects
Ferramentas de refatoração
Fake Objects
![Page 10: Trabalho efetivo com_codigo_legado](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/11.jpg)
Parameterize Constructor
![Page 12: Trabalho efetivo com_codigo_legado](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/12.jpg)
Extract Interface
![Page 13: Trabalho efetivo com_codigo_legado](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/13.jpg)
Extract Interface
*no eclipse: ALT+SHIFT+T � Extract Interface
![Page 14: Trabalho efetivo com_codigo_legado](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/15.jpg)
+ =
![Page 16: Trabalho efetivo com_codigo_legado](https://reader034.vdocuments.mx/reader034/viewer/2022050805/55adf8311a28abaa5f8b462c/html5/thumbnails/16.jpg)
Obrigado!