Artigo no estilo Mentoring
Neste contexto, este artigo é útil para a identificação de códigos mal escritos, que podem trazer problemas em tempo de manutenção, e também para a aplicação de refatoração nestes códigos, utilizando para isso alguns padrões de projetos e boas práticas.
Projetar e desenvolver um software de qualidade não é uma tarefa trivial. Muitos softwares levam incontáveis meses para serem desenvolvidos, gerando altos custos e jamais chegam a ser entregues. Um dos fatores mais comuns para o insucesso na criação de softwares é o código mal escrito, também conhecido como code smell.
Por isso, é importante que a equipe de desenvolvimento se preocupe desde o início do projeto em entregar um software de qualidade, de modo a evitar futuros problemas. No entanto, se um software é entregue com trechos de código mal escritos, ele fatalmente apresentará problemas em tempo de manutenção e até mesmo para o incremento de novas funcionalidades.
Neste ponto, o software pode tornar-se inviável, pois um código ruim tende a gerar mais código ruim, além de diminuir a produtividade no desenvolvimento. Este é o momento de identificar os pontos de código mal escrito e refatorá-los.
Para auxiliar e orientar os desenvolvedores neste processo, existem diversos padrões de projetos e boas práticas de programação que podem ser aplicados como base para a refatoração de códigos mal escritos. No entanto, antes de iniciar a refatoração de um código, deve-se levar em consideração qual a característica que torna o código ruim e avaliar qual o padrão ou boa prática que melhor se encaixa para refatoração de tal código.
Diante disso, o objetivo deste artigo é mostrar como identificar códigos mal escritos e como refatorar estes códigos utilizando padrões de projetos e boas práticas de programação.
Deste modo, durante o artigo serão mostrados exemplos de códigos mal escritos, a identificação do mesmo e a aplicação da refatoração, apresentando, por fim, os ganhos obtidos.
Padrões de Projeto
O foco principal deste artigo não é esmiuçar em detalhes os conceitos dos padrões de projetos. No entanto, é importante ter conhecimento das características dos padrões utilizados no decorrer do artigo, de modo que se possa tomar a decisão de qual padrão utilizar em determinadas situações.
Um padrão é composto basicamente por uma solução robusta para problemas comuns. Em outras palavras, um padrão é uma solução que pode ser facilmente adaptada para resolver problemas semelhantes, em diferentes contextos.
Existem basicamente duas maneiras de se utilizar padrões em um projeto de software. Uma delas é a utilização dos padrões já no momento em que o software está sendo projetado, ou seja, na modelagem do software, antes mesmo do código começar a ser escrito.
A outra opção, que será abordada neste artigo, é através da refatoração de código, onde os padrões são utilizados com o objetivo de eliminar trechos de código mal escritos, mas sem modificar seu comportamento.
O livro Design Patterns: Elements of Reusable Object-Oriented Software, da Gang of Four (vide BOX 1), lista vinte e três padrões de projetos, divididos em três categorias – padrões de projeto criacionais, padrões de projeto estruturais e padrões de projeto comportamentais.
Em 1994 os autores Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides publicaram o famoso livro Design Patterns: Elements of Reusable Object-Oriented Software (Padrões de Projeto: Soluções Reutilizáveis de Software Orientado a Objetos) com o objetivo de conceituar alguns padrões de projeto para o desenvolvimento de softwares orientados a objetos. Depois disso, estes autores ficaram conhecidos como Gang of Four, ou ainda, GoF.
O livro busca documentar soluções recorrentes para tipos de problemas parecidos, que se agrupam em contextos semelhantes. Os vinte e três padrões abordados no livro estão divididos em três categorias: padrões criacionais, estruturais e comportamentais.
Padrões de Projeto Criacionais
Os padrões de projeto criacionais, como o próprio nome indica, são padrões utilizados para a criação de objetos. A ideia é separar a lógica de criação de modo que a mesma possa ser encapsulada e reaproveitada facilmente. A seguir são listados alguns exemplos de padrões de projeto criacionais:
· Abstract Factory;
· Builder;
· Factory Method;
· Prototype;
· Singleton.
Padrões de Projeto Estruturais
Os padrões de projeto estruturais focam na organização das classes e objetos de um sistema.
O propósito é evitar o alto ...