sem alterar seu comportamento. Mas IMHO também é: • Sempre deixar a casa melhor do que você encontrou. • Tornar o software mais confiável para você e para quem vai mexer nele amanhã.
bugs • Acúmulo de más práticas Melhorias • Atualização de dependências • Melhorar performance • Diminuir complexidade (o código deve ser simples) Criação • TDD: red, green, e, qual era o terceiro mesmo?
bugs • Acúmulo de más práticas Melhorias • Atualização de dependências • Melhorar performance • Diminuir complexidade (o código deve ser simples) Criação • TDD: red, green, e, qual era o terceiro mesmo? Refactor.
ajuda aos colegas ◦ Discutir em grupo/equipe ◦ Alinhar métricas e regras ▪ Mínimo de % na cobertura de testes, padrões de estilo ◦ Não ser negligente e assumir responsabilidade
concisas, ou mesmo verbosas se necessário. • Ser o mais explícito possível. • Em casos críticos, reescreva a nova chamada dentro do método antigo, depreciando o método anterior e evitando quebrar compatibilidades enquanto a adoção do novo método é feita por toda a equipe.
class Foo { public function oldScaryMethod( $foo, $bar, $baz ) { // Complexidade no contexto } } // Chamada encapsulada em outro método class Foo { public function newMethod( $foo ) { // Podemos agir aqui $this->oldScaryMethod(...); } public function oldScaryMethod(...) { // Complexidade isolada } }
• Identificar que parte de um código pode ser reescrita em outro lugar, reduzindo a complexidade. • Abre espaço para refletir sobre princípios como 'o que de fato isso deveria estar fazendo?', 'qual a verdadeira responsabilidade desse método?' e encaixar boas práticas como SRP de orientação à objetos.
uso, ou é fruto de copiar de uma parte específica do projeto para outra, que ficou para trás. • Não ter medo de excluir código. Partes antigas podem ser recuperadas pelo SCV. • Requer uma boa estratégia de teste.
à mudanças. Confiança ao editar o código Maior visibilidade dos problemas. Garantia de qualidade Fim da síndrome da casa de vidro. Uma bela noite de sono =P
é intenção. • Refatoração acontece em vários momentos. E todos podem e devem ajudar. • Quanto mais cedo e pontual, mais fácil de fazer. • Nem toda refatoração é simples, e cada caso precisa ser muito bem analisado para verificar todo impacto e esforço.. • "A única certeza sobre software é que ele muda."