Refatoração na prática: casos comuns
Este artigo apresenta exemplos e cenários comuns no uso de refatoração, servindo como um guia prático para a aplicação desta técnica no dia a dia da equipe de desenvolvimento.
Recursos especiais neste artigo:
Conteúdo sobre boas práticas,Artigo no estilo Mentoring
Aprimorar o código fonte existente pode proporcionar um sistema melhor organizado e legível, contribuindo para o uso eficiente dos recursos envolvidos.
Este artigo apresenta exemplos e cenários comuns no uso de refatoração, servindo como um 'guia prático' para a aplicação desta técnica no dia a dia da equipe de desenvolvimento.
Em que situação o tema
útil
Aprimorar o código fonte
existente pode proporcionar um sistema melhor organizado e legível, resultando
no melhor entendimento de código fonte pelas equipes de desenvolvimento e
manutenção como também contribui para o uso eficiente dos recursos envolvidos.
Hoje em dia, as aplicações são frequentemente alvo de diversas mudanças, aprimoramentos e até mesmo eventuais correções. Isso é motivado, principalmente, pela alteração das regras de negócio ao longo do tempo e também por eventuais atualizações tecnológicas.
O código fonte implementado em qualquer aplicação deve ter um nível de organização apropriado associado com a utilização adequada da tecnologia em que é desenvolvido. Por exemplo, na linguagem Java, deve ser difundido no código todos os conceitos da programação orientada a objetos. A organização no desenvolvimento do sistema, bem como o uso adequado de suas características, possibilita que outras equipes de trabalho, diferentes daquelas que inicialmente construíram a aplicação, sejam capazes de entender e realizar as alterações sem comprometer outras funcionalidades. Para isso, é necessário que detenham conhecimento dos conceitos e técnicas do paradigma de programação utilizado. Em resumo, quanto mais padronizado, organizado e focado na tecnologia empregada, mais independente a aplicação se torna da equipe que originalmente o criou.
Apesar de um sistema ser bem desenvolvido com uma boa organização e planejamento, nunca estará imune ao processo de refatoração. A essência da refatoração está na melhoria contínua do código atrelada à evolução da tecnologia empregada e modelo implementado. Desta forma, mesmo que sejam utilizados Padrões de Projeto (Design Patterns), sobretudo em projetos de grande porte, a necessidade de refatoração não é eliminada, apesar de sua contribuição significativa no processo de desenvolvimento e construção de um bom código. Devido a isso, independente do padrão utilizado ou mesmo em sua ausência, há uma série de características que devem ser verificadas a fim de tornar as estruturas no código legíveis e bem construídas. Tal organização tornará as rotinas de manutenção e desenvolvimento menos complexas, resultando em um melhor entendimento das equipes de desenvolvimento e, como consequência, reduzindo o tempo de análise e manutenção.
Podemos dizer que a refatoração de um código fonte é o mesmo que aprimorá-lo ou melhorá-lo constantemente sem alterar seu comportamento ou resultado final. O jargão “Em time que está ganhando não se mexe” não pode ser empregado no desenvolvimento de sistemas. Na verdade, quanto mais aprimoramentos e alterações forem realizados, visando melhorar desempenho, simplicidade e legibilidade, melhor será para a manutenção e crescimento do sistema. Isso implica também que à medida que o JDK (Java Development Kit) e o JRE (Java Runtime Environment) evoluem, pode ser interessante incorporar seus respectivos avanços e manter a aplicação sempre atualizada. Da mesma forma, é recomendável verificar se as APIs (Application Programming Interface) utilizadas possuem versões mais modernas a serem empregadas.
Apesar das modificações nos sistemas para incorporarem recursos mais atuais serem uma das formas de refatorá-lo (entenda que a refatoração não é apenas o fato de atualizar o JDK por um mais atual, mas sim incorporar e aprimorar o código existente com novas estruturas), o processo de refatoração é muito mais abrangente. Ele também envolve entender o código fonte e buscar o uso de estruturas mais simples, melhor identificadas e que consumam menos recursos, caso seja possível. Portanto, é preciso analisar o código e buscar por aperfeiçoamentos que visem torná-lo mais simples e claro.
Existem diversos indícios para promover a refatoração de um código. Dentre os principais, podemos citar a remoção de algoritmos duplicados, a divisão de métodos extensos e complexos em outros menores, facilitando a reutilização, o uso adequado dos tipos e classes, visando menor consumo de memória, entre outros.
Com base nisso, este artigo tem a finalidade de apresentar as principais características que podem indicar possíveis trechos de código candidatos a refatoração, bem como sugestões de técnicas a serem empregadas neste processo de aperfeiçoamento. Tais características foram indicadas por especialistas renomados na área, Kent Beck e Martin Fowler, no livro “Refatoração: Melhorando a Qualidade do Código Pré-Existente” (“Refactoring: Improving the Design of Existing Code”). Na seção Links há informações a respeito de ambos os autores e também do livro. Ademais, também serão analisadas algumas técnicas de refatoração baseadas nas novas funcionalidades do Java 7.
Os principais sinais para refatorar seu código fonte
O conceito de refatoração introduzido pelos especialistas, Martin Fowler e Kent Beck, é: “Uma alteração feita na estrutura interna do software para torná-lo mais fácil de entender e mais barato para modificar sem alterar seu comportamento observável. É uma forma disciplinada de limpar código que minimiza as chances de introduzir bugs.”.
A definição de refatoração dada pelos especialistas indica que a refatoração é um conjunto de modificações e aprimoramentos no código, com o objetivo de torná-lo mais simples, organizado e legível, mantendo sempre o mesmo resultado ou finalidade original. Em outras palavras, é fazer a mesma coisa (no sentido de entregar um mesmo resultado) de uma maneira diferente e simplificada.
Neste contexto também é possível contar com a avaliação do código pela própria equipe de desenvolvimento, no que podemos chamar de auto avaliação ou revisão um pouco mais aprofundada. Durante a revisão, quando for identificado qualquer sinal de desconfiança nas estruturas utilizadas no código, é preciso revê-lo e analisá-lo cuidadosamente. Neste sentido, Kent Beck ressalta que a refatoração deve ser aplicada sempre que o “código cheirar mal” ("
[...] continue lendo...Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Vídeo