Refactoring

Refactoring é a prática de melhorar o trabalho já realizado sem alterar as funcionalidades desenvolvidas, ou adicionar algo novo. A equipa procurar melhorar o desenho ou estrutura do produto, reconhecendo que a versão actual pode trazer potenciais problemas no futuro.

A prática de refactoring está normalmente mais associada ao desenvolvimento de software, mas qualquer área de especialização pode adoptá-la. No caso do software, refactoring pode se referir a limpar o código para o alinhar às boas práticas. Como resultado, a equipa pode melhorar o desempenho do produto ou facilitar a sua manutenção, compreensão, e integração. 

Refactoring é frequentemente invisível para os utilizadores. Assim, o utilizador não recebe nenhuma funcionalidade adicional. No entanto, um produto melhor estruturado tem muitas vezes um melhor desempenho a um menor custo.

Refactoring

Porquê Fazer Refactoring? 

A realidade é que várias pessoas ao mesmo tempo realizam o trabalho de um projecto.  Cada pessoa pode ter diferentes graus de conhecimento e formas de fazer. Cada pessoa coloca o seu cunho, faz trabalho que não é preciso e deixa extras que não são necessários. Como resultado, o produto tem muitas vezes falta de consistência. Adicionalmente, a equipa pode “cortar esquinas” para acelerar o trabalho. 

O que acontece no fim é que mesmo que o produto funcione, podem-se limar arestas para que funcione ainda melhor. O refactoring ajuda assim a limpar os produto, uniformizando o trabalho realizado e tornando o produto mais fácil de manter no futuro, para além de certamente melhorar a performance. 

Imagine que estão a construir um carro às peças e cada pessoa faz a sua peça. Cada pessoa quer garantir que a sua peça encaixa em qualquer sítio e de qualquer forma. Para isso, cada pessoa adiciona várias alternativas. Quando se monta a peça, existem fios extras e outros componentes que não são necessários. Se multiplicarmos isso por todas as peças que existem no motor de um carro, iremos ter metros e metros de fio que não é necessário e outros componentes inúteis. O que o refactoring faz é desfazer-se de fios e componentes inúteis para que seja fácil manter o carro.

O refactoring também é necessário para manter o produto actualizado com os novos padrões.

Vantagens do Refactoring

Algumas das vantagens do refactoring são, por exemplo:

Manter o Produto Actualizado

Imagine que desenvolveu um plugin para usar num site com wordpress. O wordpress está constantemente em actualização. Se não actualizar o seu plugin, o seu plugin deixará de funcionar. Ou seja, ou faz refactoring ao seu plugin ou ele deixará de funcionar. Em última análise, perderá clientes para a sua concorrência.

Manter a Performance do Produto

O refactoring ajuda a manter a performance do produto. Todos sabemos que ter extras no produto que são inúteis irá pesar no desempenho sem necessidade. O refactoring irá, assim, fazer uma limpeza que ajudará a manter o produto rápido. Por exemplo, imagine que tem em sua casa muitas coisas que não precisa e não usa, por exemplo jornais, revistas, entre outras coisas. Se de vez enquanto não fizer uma limpeza a essas coisas extra que não usa, a sua casa ficará mais difícil de manter arrumar e será menos alegre.

Manter o Produto Integrado e Fácil de Manter

O refactoring, por outro lado, também facilita que o produto se mantenha integrado e fácil de entender. Para além disso, fazer refactoring permite melhorar a manutenção do seu produto. Dessa forma, ter um produto limpo de lixo e extras desnecessários irá ajudar a fazer a manutenção e a manter o seu produto.

Para que um produto se mantenha por mais tempo é preciso que se vá ajustando às novidades que vão surgindo para não se tornar obsoleto. Mesmo que para o utilizador pareça que o produto não mudou, este sofreu uma evolução para acompanhar as novidades nos bastidores.  O refactoring permite, desse modo, manter o seu produto actualizado com os padrões mais actuais. Isto porque, o mundo não é estático e as coisas vão mudando e evoluindo. Dessa forma, se não fizer actualizações ao seu produto ele deixará de ser relevante.

Por exemplo, iImagine que uma empresa só produzia carros a Diesel. Dessa maneira, se não procurar actualizar o seu produto para usar outras fontes de energia deixará de ter clientes quando o Diesel deixar de ser vendido.