Implementação TCP Francisco Krahe Luis Brandelli.

7
Implementação TCP Francisco Krahe Luis Brandelli

Transcript of Implementação TCP Francisco Krahe Luis Brandelli.

Page 1: Implementação TCP Francisco Krahe Luis Brandelli.

Implementação TCP

Francisco KraheLuis Brandelli

Page 2: Implementação TCP Francisco Krahe Luis Brandelli.

Teste antes!

• Teste por comparação de logs

Page 3: Implementação TCP Francisco Krahe Luis Brandelli.

Bad Smell

• Scheduller escalona, e não o Kernel!

Page 4: Implementação TCP Francisco Krahe Luis Brandelli.

Refatoração• Extract class[fowler, 149]

Kernel.java Scheduller.java

Page 5: Implementação TCP Francisco Krahe Luis Brandelli.

Bad Smell

• Adicionamos comportamento condicional• Para um certo valor de controle, o

escalonamento seria feito de uma maneira. Para outro valor, o comportamento mudaria.

• Antes mesmo que o problema surgisse, aplicamos a refatoração.

Page 6: Implementação TCP Francisco Krahe Luis Brandelli.

Refatoração

• Extract Subclass[fowler, 330]

Scheduller.java

SchedullerRR.java

Page 7: Implementação TCP Francisco Krahe Luis Brandelli.

Bibliografia• Fowler, Martin. Refactoring: improving the design of existing

code• Junit documentation: http://junit.sourceforge.net/javadoc