Durante o desenvolvimento, os requisitos mudam e as decisões tomadas sobre o design podem ser canceladas. Uma nova funcionalidade é adicionada, você a põe pra funcionar, mas a estrutura e a clareza do código podem degradar. Você poderá deixar como está, e o design irá lentamente degradar, ou você poderá melhorar o design imediatamente. A refatoração serve para melhorar o design.
Um design simples tem as quatro características abaixo, listadas em ordem de prioridade:
- O sistema passa em todos os testes.
- Não contém código duplicado.
- O código explicita claramente a intenção dos programadores.
- Contém a menor quantidade possível de classes e métodos.
Um bom recurso para obter conhecimento sobre refatoração é o livro de Martin Fowler: Refactoring - Improving the Design of Existing Code [FOW99]. Martin discute a ideia de "cheiros de código ruim", como detectá-los, qual prejuízo eles causarão no software e como corrigi-los.
Durante o desenvolvimento, você deve olhar para a refatoração de código com a mente aberta e encontrar as suas fraquezas. Torne o código claro; corrija o que precisa ser corrigido. À medida que for descobrindo esses cheiros, você deve trabalhar para eliminá-los antes de prosseguir para o próximo caso de teste. Economize algum tempo antes de fazer check-in do seu código para depois ter que voltar atrás e revê-lo. Identifique seções de código duplicado e locais onde a intenção do design não esteja clara. |