VBA Advanced - Refatoração do código - Code Refactoring



Blog Office VBA | Blog Excel | Blog Access |

A experiência que acumulamos desenvolvendo inúmeras aplicações para as mais diversas necessidades de diferentes Clientes, com o passar do tempo, torna-nos melhores desenvolvedores refletindo no resultado que apresentamos. O aprofundamento em uma linguagem, tecnologia, conceito finda por nos tornar mais aptos para o implemento de modelos lógicos, os nossos algoritmos.

Sem mais blábláblá.... O que é Code Refactoring?
Refatoração é o processo de melhoria do seu código depois que ele foi escrito. Alteramos a estrutura interna do nosso código sem alterar o comportamento externo dele. Em linhas gerais, a refatoração ocorre quando mudamos o código, mas não alteramos o comportamento deste. O objetivo é torná-lo melhor, mas caso algo errado seja implementado, ainda assim será uma refatoração.

O aperfeiçoamento do código:

Minimizará as chances de falhas

Tornará o código mais fácil de entender e modificar

Permitirá a melhoria de programas difíceis de ler e por conseqüência difíceis de modificar.

A refatoração incluirá o uso de comentários e a documentação dos projetos favorecendo o entendimento e futuras modificações.

Evitará o desenvolvimento de lógica duplicada, por nome ou outros entendimentos e códigos com lógicas condicionais complexas.

Ao programar, o desenvolvedor terá uma aplicação que rode normalmente, mas que é difícil de entender por uma deficiência de código qualquer. A refatoração deve necessariamente ajudar a tornar o código mais legível, corrigindo deficiências estruturais.

A refatoração não deve ter o seu tempo alocado em cronogramas, essa função tem de ser habitual ao programador. Algumas regras devem ser seguidas:

Refatorar quando acrescentar novas funções

Refatorar quando necessitar consertar falhas

Refatorar quando revisar o código

Indireção e Refatoração
A refatoração tende a dividir métodos e objetos maiores em diversos outros menores, chamando isso de indireção. No entanto isso tem o seu lado bom e o ruim. O lado ruim é que cada vez que dividimos algo em várias partes, teremos conseqüentemente mais coisas para gerenciar. Tornando o programa mais difícil de ler. Por outro lado temos algus benefícios:

Compartilhamento de lógica: Um processo pode ser invocado em dois ou mais lugares diferentes.

Expõe intenção e implementação separadamente: Escolher o nome de cada parte do processo dá a oportunidade de explicarmos melhor o que pretendemos.

Isola alterações: O desenvolvedor usa um objeto em dois lugares diferentes e quer alterar o comportamento em um dos casos. Se alterar o objeto arrisca alterar o comportamento de ambos. Então, primeiro devemos criar um sub processo e fazer referencia a este.

Extract Method

Extract Method é uma das técnicas de refatoração propostas por Martin Fowler especialista em refactoring.

A técnica de extrair o método é bastante simples e pode causar uma melhoria significativa da leitura e organização de um código, basicamente a técnica consiste em decompor um rotina grande em métodos com código menores.

Por que refatorar?
Refatorar o software é uma técnica que pode (e deve) ser utilizada por diversas razões. 

Melhora o projeto: sem refatoração a estrutura interna de um software geralmente se degrada com as mudanças que ocorrem no decorrer do tempo. Programadores que nunca viram o código antes são encarregados de adicionar uma nova funcionalidade e provavelmente vão fugir um pouco do padrão que foi utilizado quando o software foi projetado. Aplicar refatoração após a adição dessa nova funcionalidade poderá deixá-la em conformidade com os padrões que foram utilizados nas outras funcionalidades que o software já possui;

Torna o software fácil de entender: desenvolvedores geralmente estão sempre com pouco tempo para terminar suas tarefas e entregar a funcionalidade pronta. Para conseguir entregar dentro do prazo, alguns acabam se apressando na hora de codificar, o que pode prejudicar a legibilidade (clareza do código) e alguns bugs podem passar despercebidos. Erros comuns são: não nomear as variáveis corretamente, não comentar, duplicar código, colocar métodos em classes inadequadas, entre outros. Ao empregar a refatoração, muito provavelmente, tais sujeiras serão removidas do código, o que o tornará muito mais fácil de compreender e manter;

Ajuda a achar bugs: quando um desenvolvedor vai refatorar certo código, ele deve entender exatamente o que aquele código está fazendo. Entendendo muito bem o seu funcionamento, os possíveis bugs existentes naquele código acabam se tornando evidentes. Como o desenvolvedor já está alterando o código, recomenda-se também eliminar o bug;

Ajuda a programar mais rápido: com todas as vantagens citadas até agora, pode-se notar que quando a refatoração é aplicada por uma pessoa que tem domínio sobre a técnica, a qualidade do software aumenta e o código fica mais fácil de entender. Assim, quando um desenvolvedor pega o código para adicionar uma nova funcionalidade e consegue compreendê-lo mais rapidamente, o processo de desenvolvimento também ocorre de maneira mais rápida e tranquila.

Um dos livros mais importantes sobre refatoração é Refactoring: Improving the Design of Existing Code (ISBN 0-201-48567-2) de Martin Fowler, onde são explicados os conceitos, motivações e uma série de refatorações descritas passo a passo.

As refatorações descritas no livro de Martin Fowler utilizam fortemente conceitos de orientação a objeto.

Basta observar algumas:

Extrair Método (Extract Method)
Mover Método (Move Method)
Mover Atributo (Move Field')
Extrair Classe (Extract Class)
Encapsular Atributo (Encapsulate Field)
Renomear Método (Rename Method)
Subir Método (Pull Up Method)
Subir Atributo (Pull Up Field)
Descer Método (Push Down Method)
Descer Atributo (Push Down Field)
Extrair Sub-classe (Extract Subclass)
Extrair Super-classe (Extract Superclass)


Referência:

Kent Beck
Martin fowler 

Tags: VBA, Tips, refactoring, refatoração, Code, código, indireção





Nenhum comentário:

Postar um comentário

diHITT - Notícias