Tarefa: Refatorar Código
Objetivo
  • Manter o design do sistema claro e pronto para mudanças.
Relacionamentos
PapéisExecutor Principal: Executores Adicionais:
EntradasObrigatório:
    Opcional:
      Saídas
        Passos
        Identificar Design Pobre

        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.

        Refatorar

        A refatoração envolve a execução de alterações no código que melhorem a sua estrutura sem modificar o seu comportamento. O livro sobre refatoração de Martin Fowler listas mais de sessenta refatorações para tratar situações especiais no código. A meta de cada uma delas é a redução da duplicação de código e o aumento da clareza. Mantenha o seu código limpo, simples e livre de duplicação.

        À medida que a estrutura do código evolui você escolhe nomes que lhe ajudam no entendimento das funcionalidades especificadas pelo código. Este sistema de nomes torna-se o vocabulário usado para a discussão de design da sua equipe.

        Informações Adicionais