Domanda

Come definiresti " codice indesiderato " ;?


Modifica:

IMHO, Qualsiasi membro del codice con 0 membri chiamanti attivi (controllato ricorsivamente) è un codice indesiderato. (funzioni, metodi, proprietà, variabili sono membri)

È stato utile?

Soluzione

0 chiamate attive e nessuna possibilità di utilizzo in un prossimo futuro. E preferisco non commentare mai nulla nel caso ne avessi bisogno in un secondo momento poiché utilizzo SVN (controllo del codice sorgente).

Altri suggerimenti

Ecco la mia definizione di codice indesiderato :

  • Un codice che non viene eseguito è un peso morto. (A meno che non sia un payload [dannoso] per il tuo codice attuale, ma questa è un'altra storia :-))
  • Un codice che si ripete più volte aumenta il costo del prodotto.
  • Un codice che non può essere testato per la regressione sta aumentando anche il costo del prodotto.

Puoi rimuovere tale codice o refattarlo, ma non vuoi mantenerlo così com'è.

Come hai detto nell'altro thread, il codice che non viene usato da nessuna parte è praticamente indesiderato. Per quanto riguarda come trovarlo, suggerirei FindBugs o CheckStyle se stavi usando Java, ad esempio, poiché questi strumenti controllano se una funzione viene utilizzata ovunque e la contrassegna come non utilizzata se non lo è. Molto bello per sbarazzarsi di peso inutile.

Bene, dopo averci pensato brevemente mi sono inventato questi tre punti:

  • può essere un codice che deve essere refactored
  • può essere un codice che non viene più chiamato (resti di versioni precedenti)
  • può essere un codice che non si applica alla guida di stile e alla codifica

Scommetto che c'è molto di più, ma è così che definirei il codice indesiderato.

In java contrassegnavo il metodo o la classe con @Deprecated.

Qualsiasi membro PRIVATO senza membri chiamanti attivi (controllato in modo ricorsivo). Altrimenti non sai se il tuo codice non viene utilizzato al di fuori dell'analisi dell'ambito.

Alcune cose sono già state pubblicate ma eccone un'altra: Funzioni che fanno quasi la stessa cosa. (solo una piccola modifica di variabile e quindi tutte le funzioni vengono copiate e incollate e tale variabile viene modificata)

Di solito dico al mio compilatore di essere il più fastidiosamente rumoroso possibile, il che seleziona il 60% delle cose che devo esaminare. Le funzioni inutilizzate che hanno mesi (dopo aver verificato con il VCS) di solito vengono estromesse, a meno che il loro autore non mi dica quando verranno effettivamente utilizzate. Anche i prototipi mancanti sono immediatamente sospettati.

Penso che provare a implementare la pulizia automatica della casa sia come provare a creare un dispositivo USB che ti garantisca di giocare 'in sicurezza' Russian Roulette .

La parte più difficile da controllare sono i componenti aggiunti al sistema di compilazione, poche persone se ne accorgono e i kludges inutilizzati vengono lasciati a raccogliere muschio.

Oltre a ciò, in genere VOGLIO il codice, voglio solo che il suo autore lo rifletta un po 'e renda il loro stile uguale al resto del progetto.

Un altro strumento utile è doxygen , che ti aiuta (visivamente) a vedere le relazioni nell'albero dei sorgenti. Tuttavia, se si prefigge di non estrarre simboli / oggetti statici, non sarà molto accurato.

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