
Foi durante a graduação que eu tive o primeiro contato com “Refactoring”. Este seria o tema do meu projeto de conclusão de curso(TCC). Então, comprei o livro do Martin Fowler e comecei a estudá-lo e escrever sobre o assunto. Tentarei falar um pouco sobre o assunto.
Caso o seu interesse seja aprofundar no assunto, aconselho a ler o livro citado acima. Agora, se você não tem idéia, ou tem vaga noção sobre o que é refatoração, onde e como aplicá-la, seria legal acompanhar os próximos posts..
É de praxe que desenvolvedores de sistema possuam a necessidade de fazer alterações em projetos que em andamento. Em muitos casos, essas alterações são realizadas sem qualquer formalismo, elevando, assim, o índice de complexidade do código-fonte do sistema. Código complexo, difícil de ser compreendido e modificado pode levar um projeto de software ao fracasso. Alterações mal executadas podem mudar totalmente o comportamento inicial de um sistema.
Neste contexto, a refatoração auxilia no aperfeiçoamento do código-fonte minimizando as chances de novas falhas serem introduzidas no projeto.
As técnicas de refatoração, quando utilizadas corretamente, aumentam consideravelmente o tempo de vida útil do software.
Seguindo como referência o livro do Fowler(2004), temos a seguinte definição:
“A refatoração é um processo de alteração de código-fonte de um sistema de software de modo que o comportamento observável não mude, mas que sua estrutura interna seja aperfeiçoada. Em essência, quando se usa esse processo, tende-se a melhorar o código-fonte, mesmo após este já ter sido escrito.”
Você deve está se perguntando, “Mas, como eu vou ter certeza de que todo o meu sistema continuará funcionando perfeitamente, isto é, como garantir a integridade do comportamento observável do software?”. A resposta para a sua pergunta é: “Testes”.
Quando falo “Testes” não me refiro pedir ao estagiário que teste todo o software e veja se encontra algum comportamento estranho - após a refatoração, estou falando de “Testes Automatizados”.
Imagine se a cada técnica aplicada você tivesse que aguardar uma resposta do estagiário: “Ok Programador, pode continuar com suas refatorações”. Seu SW não ficaria pronto tão cedo!
A pré-condição essencial parar refatorar é a existência de testes sólidos!!! E, programadores profissionais escrevem testes!
No próximo post falaremos sobre “Bad Smells”, vantagens e desvantagens da refatoração, e, aplicaremos alguns técnicas com o auxílio de uma IDE (Eclipse).
Leia também: Improve It
Recent Comments