Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouRyan Rodriques Alterado mais de 10 anos atrás
1
Exemplos de Refactoring Alguns exemplos e considerações sobre Refactoring
2
Sumário O que e é Refactoring Quando usar Quando não usar Custos Exemplos
3
Mas o que é Refactoring mesmo? Técnica sistemática para reestruturação interna de sistemas: – altera as estruturas internas sem modificar as estruturas externas do sistema – É constituído de pequenos passos (refatorações) que isoladamente mudam pouco, mas que em conjunto podem produzir reestruturação significativa. – Após uma refatoração o sistema deve estar em perfeito funcionamento, o risco de instabilidade crítica inserido pela reestruturação deve ser mínimo.
4
Quando devo usar Refactoring? Em XP Em outros processos de desenvolvimento Em sistemas legados
5
Quando devo usar Refactoring? Em XP Em outros processos de desenvolvimento ou seja, Refactoring é indispensável!
6
Quando não usar Refactoring Sistema muito ruim: talvez seja melhor refazer o sistema Prazo muito curto: melhor refatorar depois
7
Mas tudo tem um custo... Sólida estrutura de testes automatizados Atualização da documentação Atualização dos testes
8
Exemplos – Extract Method void printDebit(double amount) { printBanner(); // print details System.out.println(name:+ _name); System.out.println(amount + amount); } void printDebit(String name, double amount) { printBanner(); printDetails(amount); } void printDetails(double amount) { System.out.println(name:+ _name); System.out.println(amount + amount); }
9
Exemplos – Singleton public String getNomeCliente(int id){ try{ BancoDados banco = new BancoDados(); String nomeCliente = banco.getNomeCliente(); }catch(Exception e){//...tratamento de exceção} } public String getNomeCliente(int id){ try{ BancoDados banco = BancoDados.getInstance(); return banco.getNomeCliente(); }catch(Exception e){//...tratamento de exceção} }
10
Exemplos – Singleton (ii) public static BancoDados getInstance(){ return (bancoDados == null) ? new BancoDados() : bancoDados; } private BancoDados(){ //inicializa objeto //cria conexao, etc }
11
Exemplos – Chain Constructors
12
Exemplos – Chain Constructors (ii)
13
Por fim... Antipatterns renomear variáveis, indendação, também são refactoring AOP
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.