Artigo no estilo Mentoring

Mentoring:Conforme sistemas de software são evoluídos, modificados e adaptados de acordo a adição de novas funcionalidades, seu código e outros artefatos envolvidos se tornam mais complexos e se afastam de seu objetivo original e perdem qualidade. Metodologias e ferramentas não resolvem este problema, pois sua utilização normalmente auxilia na aceleração no desenvolvimento. Em muitos projetos, boa parte do custo é dedicada à sua manutenção. Dessa forma, é necessário facilitar a manutenibilidade e legibilidade do código, melhorando sua qualidade interna. Uma das técnicas usadas para solucionar esse problema é conhecida como Refatoração. Este artigo apresenta os fundamentos envolvidos na prática da refatoração, bem como mostra um estudo de caso através de uma aplicação prática feita no Delphi XE5, mostrando ainda o suporte que o IDE oferece através do menu Refactor.

Refatoração é o processo de modificar um sistema de software sem alterar o comportamento externo do código, melhorando sua estrutura interna. É uma forma disciplinada de limpar minimizando as chances de introduzir erros. Quando se refatora está se melhorando o design do código depois de ele ter sido feito. Primeiro um bom projeto deveria ser feito, a seguir a sua codificação, mas nem sempre é assim que as coisas acontecem.

Com a evolução do sistema de software, mudanças ocorrerão, e a sua estrutura e integridade original diminuem. Dessa forma, essas transformações, no caso as refatorações, podem melhorar a estrutura do projeto. Embora a reestruturação crie novas versões que implementam ou propõem mudanças no objetivo final do sistema, normalmente não envolvem modificações referentes a novos requisitos, ou seja, não visam implementar novas funcionalidades no sistema de software. No entanto, podem conduzir a observar melhor o objetivo do sistema, já que sugerem mudanças que poderem melhorar sua estrutura interna.

Nesse sentido, é necessário identificar locais no código ou outros artefatos que precisam ter sua estrutura modificada, seja para melhorar sua legibilidade, melhorar o projeto, tornar mais simples de evoluir e de manter. Tais estruturas passíveis de refatoração são também conhecidas como “bad smells”, ou problemas (shortcomings). Um bad smell sugere que existem deficiências que podem ser sanadas ou melhoradas, porém é necessário que a aplicação continue apresentando o mesmo comportamento externo após a transformação interna.

Outro ponto a ser considerado no estudo da refatoração é o uso de Padrões de Projeto, ou Design Patterns, amplamente utilizados no projeto de arquiteturas de software, pois representam soluções gerais, reutilizáveis, testadas e documentadas, resolvendo problemas recorrentes de programação orientada a objetos. Muitas vezes, no entanto, padrões de projeto tendem a ser utilizados de forma antecipada em um projeto.

Já com refatoração, você parte de um mau design (muitas vezes do caos absoluto), refatora e obtém um código bem projetado. Cada refatoração consiste de um passo simples, pequeno. Você move um campo para outra classe, move um método para uma classe superior na hierarquia, extrai uma classe nova a partir de outra existente etc. Cada pequeno passo vai melhorando de forma incrementa o design do código como um todo.

Existem várias motivações para o uso de refatorações. Elas tornam mais fácil a adição de novo código. Quando se inclui uma nova funcionalidade em um sistema de software, pode-se programar sem se preocupar o quão bem se encaixa no projeto existente, ou pode modificar o projeto existente a fim de melhor implementar a funcionalidade.

No primeiro caso, ocorre um débito de projeto, o qual pode ser resolvido mais tarde com refatoração. Além disso, as refatorações melhoraram um projeto de código existente, no momento que tornam o código mais simples, claro e mais fácil de trabalhar, manter e evoluir. A refatoração contínua envolve procurar constantemente por problemas e removê-los imediatamente. E finalmente, refatorações ajudam a se obter um melhor entendimento do código. Se um código está difícil de ser compreendido, programadores normalmente comentam este código para tornar mais clara sua intenção. Se o código não está claro, o problema precisa ser removido através de refatoração.

Refatoração é uma atividade vital em abordagens ágeis de desenvolvimento. Uma transformação na estrutura pode ser frequentemente relacionada à sua aparência (por exemplo, melhorar a legibilidade), mas pode ser uma alteração no design da aplicação.

Refatorações podem melhorar a qualidade de um software, por exemplo, extensibilidade, modularidade, maio ...

Fim do trecho gratuito • continue abaixo
CONTEÚDO EXCLUSIVO

Desbloqueie toda a DevMedia

  • +2000 artigos e vídeos
  • +40 trilhas sobre Front-end, Back-end, IA e muito mais
  • +5000 exercícios práticos
  • Mentorias ao vivo individuais
até 50% OFF
A partir de
R$ 69 /mês
Assinar agora