Domanda

Sto lavorando a un sistema abbastanza grande sviluppato da un altro programmatore che non lavora più qui.

E dato che sono il serial killer maniacale che lo mantiene e sa dove vive.

Ma a parte le cose divertenti, il sistema è un po 'sviluppato come un sistema di classe e un po' no e ho già installato una versione per sviluppatori e posso distribuire nuove versioni abbastanza rapidamente.

  1. Hai qualche suggerimento su un passaggio parziale a un nuovo modello (non riesco a fare una transizione completa, ma non ho tempo)
  2. Raccomandi qualsiasi nome di classe che posso lasciare nel sistema (senza che sembri un hack) ma non si scontrerà con i nomi di classe correnti (utente, dati, registrazione ecc.)

Grazie.

È stato utile?

Soluzione

Suggerimento n. 0) Il codice esistente è davvero veramente male o non soddisfa le tue preferenze personali? Se è il primo, continua a leggere questo elenco. Se è quest'ultimo, fai alcuni respiri profondi e trascorri almeno un mese o due a conoscere le cose prima di decidere di doverlo rifare.

Suggerimento n. 1) Quando stai programmando, se vedi qualcosa che non va, correggilo. Ciò richiederà più tempo, ma alla fine ti consentirà di aumentare la produttività man mano che il sistema diventa più "riparato". Se davvero non hai tempo per ripararlo, fai un favore a te stesso e aggiungi un commento come questo: // TODO: rejig cosa così fa x In seguito, quando hai tempo, cerca semplicemente il tuo codice per & Quot; &: TODO quot; per ottenere un elenco di cose che devi fare. Potresti anche dare loro livelli, come & Quot; TODO-High & Quot ;, & Quot; TODO-Medium & Quot ;, & Quot; TODO-Low & Quot ;. Se usi Eclipse o Zend Studio per Eclipse come editor / IDE, puoi impostarlo per trovare automaticamente & Amp; contrassegnali per te, in Preferenze - > Attività.

Suggerimento n. 2) Una cosa importante da fare se si spera di (eventualmente) passare a MVC è separare l'HTML dalla logica. Questo significa usare i template. Questa operazione potrebbe richiedere molto tempo, ma una volta completata, il resto della transizione sarà molto più semplice.

Suggerimento n. 3) Prova a stabilire convenzioni. Esempio: controller & Amp; I nomi delle viste devono corrispondere all'URL e devono risiedere in directory corrispondenti all'URL. URL da modificare Place 1234: / places / edit / 1234 File del controller: /htdocs/sitename/controllers/placesController.php File modello: /htdocs/sitename/views/places/edit.tpl

Suggerimento n. 4) Leggi i tutorial di "introduzione" per i principali framework: Zend, CakePHP, CodeIgniter / Kohana, Symfony. Vedi se uno sembra migliore di un altro per te. Chiediti perché ti piace. Funzionerà per te o hai bisogno di creare il tuo framework (incerto). Se possibile, utilizzare un framework esistente. È già stato testato da centinaia o migliaia di persone e questo è il momento che risparmierai! Mi piace Zend Framework, ed è particolarmente adatto per & Quot; progetti di transizione & Quot; come il tuo, perché puoi prenderlo o lasciarlo un pezzo alla volta. Voglio dire, potresti scegliere di usare SOLO l'oggetto View di Zend, o SOLO usare il suo oggetto DbTable. Sei libero di lasciarne fuori tutto ciò che vuoi. Ciò significa che puoi passare gradualmente in un mondo Zend al tuo ritmo. EZ-Components funziona allo stesso modo.

Suggerimento n. 5) Avvolgere le classi utilizzate estendendole. Ad esempio, io uso Zend_Acl, ma in realtà uso la mia classe Acl che estende Zend_Acl. Ciò ha due implicazioni chiave: a) Posso scambiare Zend_Acl con qualcos'altro senza cambiare il mio codice, perché tutto si riferisce al vecchio "Acl" b) Posso modificare il modo in cui Zend_Acl funziona per soddisfare le mie esigenze specifiche, perché posso ignorare qualsiasi metodo mi piaccia nella mia classe "Acl".

Suggerimento n. 6) Prova a ottenere il buy-in dalla direzione. Spiega loro che il refactoring farà effettivamente risparmiare denaro, perché aumenterà la coerenza & Amp; comprensibilità del codice, che aiuta a ridurre il numero di difetti E facilita la ricerca dell'amplificatore &; correggere.

Suggerimento n. 7) Prova a leggere libri sull'argomento, ad esempio " Refactoring: migliorare la progettazione del codice esistente " di Martin Fowler

Altri suggerimenti

zend ha una bella convenzione di denominazione: http://framework.zend.com/manual/en/ codifica-standard.naming-conventions.html

Hanno aggiunto il prefisso Zend_ a tutte le loro classi ed è così che evitano gli scontri con le classi di terze parti.

A mio avviso, ogni grande progetto dovrebbe implementare una convenzione di denominazione simile, almeno per le classi principali.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top