2010-09-08 7 views
7

Vedo regolarmente codice di produzione da sviluppatori (grandi aziende e privati) che contengono codice che è stato commentato. Presumibilmente questo rimuove i precedenti tentativi di raggiungere la funzionalità che non ha funzionato per qualche motivo.È una cattiva pratica lasciare codice commentato nelle versioni di produzione

A mio parere, questo è disordinato, ma potenzialmente ha alcuni vantaggi, ad es. al ritorno al refactoring o all'estensione del codice, lo sviluppatore può vedere cosa è stato provato in precedenza.

Ci sono aspetti di sicurezza o di buona pratica a questo?

+2

Questo tipo di argomento è stato trattato in precedenza: http://stackoverflow.com/questions/758279/check-in-of-commented-out-code, http://stackoverflow.com/questions/123423/do- you-leave-storico-code-commented-out-in-classes-that-you-update – gnovice

+0

grazie. contento di vedere che l'opinione schiacciante è di liberarsene! –

+0

Un'altra domanda simile https://softwareengineering.stackexchange.com/questions/190096/can-commented-out-code-be-qualityable-documentation –

risposta

23

È consigliabile utilizzare SCM. Se pensi che il vecchio codice sia davvero qualcosa a cui le persone vorranno riferirsi in futuro, lascia un commento di "// ci siamo abituati a farlo in un altro modo, che aveva proprietà interessanti X - vedi revisione 103" piuttosto che lasciare interi blocchi di codice che non fa nulla

Il codice di commento ha il suo posto, ma quel posto è un test rapido che non vale nemmeno il tempo di fare un ramo.

Se il codice è utile, vale la pena di essere perso in un commento da qualche parte. Se non vale la pena tenerlo, uccidilo con il fuoco.

+1

Mi piace l'idea di includere un commento che faccia riferimento ad una particolare revisione. –

+0

Cosa succede se (1) si usa un compilatore di sistemi embedded che non ottimizza i metodi non utilizzati, e (2) uno ha una famiglia di funzioni simili (es. Put (firmato/non firmato) (byte/word/long)) di cui alcuni possono essere usati al momento, altri no. Sembrerebbe desiderabile avere prontamente disponibile l'insieme di funzioni ortogonali, anche se alcune sono # escono per salvare lo spazio ROM sul bersaglio. – supercat

+0

@supercat: se è in SCM, è disponibile come # qualcosa se disponibile. – Chuck

0

La pratica migliore è che il codice mostra solo la corrente. Dovresti utilizzare un SCM che gestisce la cronologia del codice.

1

Il codice deve essere memorizzato nel controllo sorgente.
I commenti devono essere riservati per spiegare codice di difficile comprensione o la ragione per fare qualcosa fuori dall'ordinario.

Problemi correlati