Ho un progetto legacy su cui sto lavorando, come dovrei migliorare la sua struttura?

5

Ho un progetto PHP un po 'vecchio su cui sto lavorando per un client (penso sia iniziato circa 5 anni fa), fa largo uso della obsoleta funzione mysql_query , che riguarda non solo perché è ora deprecato ma perché potrebbe anche aprire buchi di sicurezza.

Anche il progetto non sembra avere molto di una struttura, penso che lo sviluppatore originale avesse un qualche tipo di metodo quando ci lavorava, ma non c'è documentazione e non sono in grado di mettermi in contatto con lui per quanto riguarda detto progetto.

Mentre procedevo, ho cambiato le query del database per usare PDO e ho cercato di ripulire un po 'le cose, ma è un progetto abbastanza grande (poche centinaia di file php) e non voglio passare troppo tempo a ristrutturare le cose a causa del tempo che mi è stato assegnato ogni mese.

Che cosa dovrei fare? Una riscrittura sarebbe una buona idea? O dovrei semplicemente provare a riformulare il progetto attuale in qualcosa di un po 'più bello?

    
posta Sean 19.07.2014 - 15:41
fonte

2 risposte

4

A meno che non si stia introducendo una struttura esistente nel codice e il 90% del codice originale sarà preso in carico dal framework, fare una grande riscrittura sarà quasi certamente più costoso del refactoring incrementale del codice.

Se il codice originale è essenzialmente buono (ben documentato e strutturato), ma non solo secondo le migliori pratiche odierne, non otterrai molto da ristrutturare e potresti anche mantenere la struttura originale anche per il nuovo funzionalità (l'uniformità su un codebase è molto più importante per la gestibilità rispetto alle best practice più recenti).

Se il codice originale non è poi così buono, ma non hai il tempo / le risorse per sistemarlo tutto in una volta, puoi affrontare ogni mese una piccola parte che ti irrita di più o che ti ostacola implementando alcune nuove funzionalità.

    
risposta data 19.07.2014 - 18:18
fonte
3

Dovrei raccomandare il consiglio di Martin Fowler su questo.

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.

In altre parole, refactator se necessario quando è necessario apportare una modifica. Questo ti impedisce di rimanere invischiato in un enorme refactoring per motivi di refactoring, fornendo nel contempo una giustificazione al refactoring quando hai bisogno di refactoring.

    
risposta data 20.07.2014 - 02:05
fonte

Leggi altre domande sui tag