Gemma di refactoring del codice – Flay

Mantenere il codice elegante e senza cloni di codice durante la creazione di una vasta applicazione Rails può essere un test significativo, tuttavia, per uno sviluppatore esperto. Fortunatamente, c'è una gemma che rende il refactoring del codice molto più semplice. Per moltissime persone, dopo un po' di tempo si svilupperà un codice morto/dispendioso. Altri si troveranno in una situazione del genere quando assumeranno il controllo di progetti legacy. Nella remota possibilità che tu abbia bisogno di mantenere il tuo codice manutenibile e ottimizzato, dai un'occhiata a un gioiello che ha fatto il lavoro per me.

Flay esamina il codice per le somiglianze strutturali. Le differenze nei valori letterali, nelle variabili, nelle classi, nei nomi dei metodi, negli spazi bianchi, nello stile di programmazione, tra parentesi graffe e fine/fine, oggetti di scena e fine/fine e così via sono tutti trascurati, rendendolo assolutamente fantastico. È adatto a riconoscere sia le corrispondenze corrette che quelle ravvicinate e con certezza scopre alcuni punti in Active Record in cui i modelli si ripetono. Nel suo stato attuale, l'output di Flay è molto primitivo: un elenco di nodi di codice ripetuti, insieme a un peso in base al quale classificarli e numeri di riga e nomi di file in cui appare il codice ripetuto. Il codice che visualizza i report come comparativi è uno strumento decente per il refactoring.

Comando da installare

sudo gem installa fly

Comando per vedere l'output

Cd “Percorso della cartella del progetto”
scorticare “percorso della cartella”
Ad esempio: flay ./app/controllers - Identifica la duplicazione del codice in tutti i controller.
flay ./app - Identifica la duplicazione del codice nell'intero progetto
flay ./app/controllers/example_controler.rb - Identifica la duplicazione del codice nel controller specificato.

Esempio di uscita
Viene generato un output delle aree duplicate del codice come questo:

sridevi@carmatec-MS-7788$ flay ./app/models/*.rb Punteggio totale (più basso è migliore) = 1666 1) Codice simile trovato in :call (mass = 170) ./app/models/example.rb:8 ./app/models/example.rb:9 ./app/models/example.rb:10 ./app/models/example.rb:11 ./app/models/example.rb:15 ./app/models/ esempio.rb:17 ./app/models/esempio.rb:19 ./app/models/esempio.rb:20 ./app/models/esempio.rb:22 ./app/models/esempio.rb:23 2 ) Codice simile trovato in :defs (mass = 154) ./app/models/example.rb:260 ./app/models/result.rb:195 3) Codice simile trovato in :defs (mass = 138) ./app /models/feedback.rb:62 ./app/models/example.rb:54 ./app/models/result.rb:51 4) Codice simile trovato in :call (mass = 136) ./app/models/example .rb:12 ./app/models/example.rb:13 ./app/models/example.rb:14 ./app/models/example.rb:16 ./app/models/example.rb:18 ./ app/models/example.rb:21 ./app/models/example.rb:24 ./app/models/example.rb:25 5) Codice IDENTICO trovato in :defn (massa*2 = 128) ./app/ models/result.rb:7 ./app/models/summary_report.rb:7 6) Codice IDENTICO trovato in :defn (mass*2 = 120) ./app/models/example.rb:17 ./app/models/ esempio.rb:23

Il punteggio totale dell'app di 1666 (il consiglio "più basso è meglio" è vero) può essere visualizzato nei suoi singoli componenti mostrando le aree che forniscono il massimo rapporto qualità-prezzo. Per gli sviluppatori esperti che operano da soli o in un piccolo team, Flay potrebbe non essere necessario. Tuttavia, su progetti più grandi (come quello su cui l'ho eseguito) o su quelli con programmatori principianti o intermedi può aiutare ad aumentare la manutenibilità della base di codice.

Di seguito è riportata la rappresentazione pittorica di come eseguire il refactoring del codice nell'app rails. Ad esempio, se lo stesso codice è duplicato in molti controller, conservalo in ApplicationController e chiama il metodo utilizzando i filtri.

Articoli correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

it_ITItalian