Eu tenho um projeto legado em que estou trabalhando, como devo melhorar sua estrutura?

5

Eu tenho um projeto PHP ligeiramente antigo em que estou trabalhando para um cliente (acho que foi iniciado há cerca de 5 anos), ele faz uso extensivo da função mysql_query fora de moda, que é preocupante não apenas porque agora depreciado, mas porque também poderia abrir falhas de segurança.

O projeto também não parece ter muita estrutura, acho que o desenvolvedor original tinha algum método ao trabalhar nele, mas não há documentação e eu não consigo entrar em contato com ele projeto.

Como eu tenho passado, eu tenho alternado as consultas do banco de dados para usar o PDO, e tentando limpar as coisas um pouco, mas é um grande projeto (algumas centenas de arquivos php) e eu não quero gastar muito tempo reestruturando as coisas diminui o tempo que eu tenho para isso a cada mês.

O que devo fazer? Reescrever seria uma boa ideia? Ou eu deveria simplesmente tentar remodelar o projeto atual em algo um pouco melhor?

    
por Sean 19.07.2014 / 15:41
fonte

2 respostas

4

A menos que você esteja introduzindo uma estrutura existente no código e 90% do código original seja assumido pela estrutura, fazer uma grande reescrita quase certamente custará mais tempo do que incrementar a refatoração do código.

Se o código original é essencialmente bom (bem documentado e estruturado), mas não de acordo com as melhores práticas de hoje, então você não vai ganhar muito reestruturando-o e você também pode manter a estrutura original também para o novo recursos (a consistência em uma base de código é muito mais importante para a manutenção do que seguir as práticas recomendadas mais recentes).

Se o código original não é tão bom assim, mas você não tem tempo / recursos para consertar tudo de uma só vez, então você pode lidar com cada mês uma pequena porção que o irrita mais ou que o atrapalha implementando alguns novos recursos.

    
por 19.07.2014 / 18:18
fonte
3

Eu teria que recomendar o conselho de Martin Fowler sobre este assunto.

When you find you have to add a feature to a program, and the program's code is not structured in a convenient way to add the feature, first refactor the program to make it easy to add the feature, then add the feature.

Em outras palavras, refatore conforme necessário quando precisar fazer uma alteração. Isso evita que você se envolva em uma refatoração em massa para refatorar, enquanto fornece uma justificativa para refatorar quando você precisar refatorar.

    
por 20.07.2014 / 02:05
fonte