Domanda

Sento il bisogno di rielaborare il mio vecchio CF5 a base di codice in CFC.Abbiamo già un po ' di codice in ColdSpring e Trasferimento, ma sento un grande riscrivere a ColdSpring e il Trasferimento è inutile.

Cosa consigli, le strategie e i trucchi si mi ha colpito.

Come posso rendere questo facile?

Non ho la mente talmente semplice mantenere aggiornati i ColdSpring nel mix, ma il Trasferimento è un po ' ho paura che con le dimensioni del progetto.

edit:il mio codice di base è stata di andare per 7-8 anni ed è vasto.Per descriverlo sarebbe difficile, però sto cercando generico suggerimenti su approcci

È stato utile?

Soluzione

Modifica l'intera base di codice solo per il gusto di farlo se fondamentalmente funziona sarebbe l'introduzione di un sacco di potenziali bug nel vostro sistema. Non credo che ci sia un modo semplice per farlo.

Se si guardano le aree del sito, che sono 1: con maggiori probabilità di cambiare e 2: eseguito il massimo che può essere in grado di indirizzare alcune aree che potrebbero beneficiare di cambiamento e vedere la facilità con cui si adatterebbe in un CFC base quadro, e quali vantaggi. Ma per la maggior parte del codice, se si sta lavorando bene, non ci può essere premuto bisogno di cambiare.

Tuttavia ogni volta che avete bisogno di fare modifiche importanti alla parte del sistema, può essere la pena di guardare che da un punto di vista OO e spostando il codice esistente sopra, se del caso.

Altri suggerimenti

In uno dei miei progetti in corso (quasi stessa situazione, ancora di più - la maggior parte del codice è davvero male) Sto usando la tecnica che avevo chiamato "onda-style". idee generali che uso sono i seguenti:

  1. elaborazione Splitting dall'uscita. Non posso implementare vero MVC qui, ma almeno posso spostare vista in modelli separati (a volte riutilizzarle) e preparare tutti i dati (modello) modelli di base.
  2. Sposta tutto il codice ripetendo in componenti - questo è uno dei più importanti suggerimenti.
  3. Gruppo funzioni correlate in componenti. Dire, per tutte le informazioni relative ai clienti raggruppati in CustomerManager.cfc, fatture in InvoiceManager.cfc etc.

Perché "onda"? In un grande progetto che non posso semplicemente sedersi e riscrivere tutto il codice relative ai clienti. Così ho fanno un passo alla volta. Ad esempio, devo lavorare sulla registrazione dei clienti, estenderlo con pochi attributi. Ho creato componente di base, sono trasferito metodi là di convalidare forma (controllo di accesso, e-mail etc.) e aggiungere al cliente - in modo da questa pagina lavora a nuovo stile. Lata ho bisogno di migliorare la pagina della fattura, in cui ho bisogno di ottenere informazioni sul proprietario della fattura: Ho appena aggiungo metodo in responsabile di cliente e di sbarazzarsi di query dirette. Più tardi pagina di modifica del cliente ... Inoltre può essere chiamato "on demand refactoring", o si dovrebbe occupare.

Non ci può essere roba ulteriore affidamento sul vostro stato attuale progetto. Ma mi ha aiutato molto. Spero che troverete questi suggerimenti utili.

Prima di modificare qualsiasi cosa: creare un set completo di test di regressione!

Quando il refactoring, l'obiettivo deve essere preservare la funzionalità, in modo che non interessano direttamente i vostri clienti.

Sono d'accordo con Sergii d'onda di stile di refactoring, inoltre, consente di suddividere le cose in blocchi gestibili, piuttosto che fare tutto in una volta.

Ma qualunque sia il metodo, il più test di regressione è possibile creare, il meglio, è davvero l'unico modo per confermare che non hai involontariamente cambiato qualcosa.

Questo è estremamente difficile (confinante con impossibile) per rispondere senza conoscere alcuna del vostro codice.

La questione è un po 'come "Voglio smontare la mia vecchia Volkswagen e costruire uno nuovo dalle parti, che cosa devo prendere in considerazione?" : -)

Il mio consiglio sarebbe quello di iniziare incapsulando la logica di business in CFC invece di preoccuparsi di tutto il livello di presentazione del tuo sito.

Per concentrarsi solo sulla logica di business, sarete in grado di ottenere le funzionalità più importanti in CFC e facilitare l'incubo di manutenzione. Essa, inoltre, non sarà troppo difficile da solo "drop-in" questi CFC nel vostro sito esistente.

Dopo aver ottenuto la logica di business tanto in CFC, come si può, si noterà che l'enorme mostro è stato ridimensionato. A quel punto si può ora decidere su ciò che si vuole fare con il livello di presentazione del tuo sito. Ora siete liberi di scegliere tra una moltitudine di quadri disponibili per l'utilizzo (CFWheels, fusebox, coldbox, Mode-Glue) alla porta sopra il livello di presentazione.

Oppure si può semplicemente dire "diavolo con essa" e riscrivere il tutto in CFWheels fin dall'inizio:)

Se non si utilizza get controllo di versione che ha istituito, prima di fare qualsiasi altra cosa. Essere in grado di tornare indietro di refactoring rotto è un grave risparmiatore di vita. Dopo di che sono d'accordo con ciò che è stato pubblicato. Si vuole prendere in piccoli pezzi alla volta -. Divide et impera

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