Robert C. Martin offre nel primo capitolo del suo libro "Clean Code" diverse definizioni di "codice pulito" da parte di esperti di software ben noti. Come si definisce il codice pulito?Definizione di "codice pulito"
risposta
- Facile da capire.
- Facile da modificare.
- Facile da testare.
- Funziona correttamente (suggerimento di Kent Beck - molto a destra).
Queste sono le cose che sono importanti per me.
Codice in cui i diversi moduli o classi hanno contratti chiaramente definiti, è un buon inizio.
Codice Non ho paura di modificare.
Codice che non si rompe in più punti quando si effettua una modifica singola, apparentemente insignificante. È anche facile seguire il percorso di controllo del programma.
Codice che non richiede alcun commento per essere facilmente compreso.
Direi un uso minimo dei commenti, piuttosto che nessuno: (1) non è impossibile avere un algoritmo contro-intuitivo; un commento può essere usato per rendere l'utente consapevole (2) i commenti possono essere usati per suddividere il codice in sezioni logiche in modo che il lettore abbia immediatamente una panoramica. –
Grazie per questo commento. Quanto a scomporre il codice in sezioni logiche con commenti, non sono assolutamente d'accordo. Se senti la necessità di suddividere il tuo codice, usa metodi con nomi corretti. Per quanto riguarda gli algoritmi controintuitivi, se si fa quanto sopra, dubito che siano necessari commenti per descrivere cosa sta succedendo. Se è ancora necessario, documentare la soluzione è probabilmente più utile, quindi aggiungere alcuni commenti al codice. –
Codice haskell senza punti. (Non proprio, però.)
Codice che legge il più vicino possibile a una lingua umana. Lo dico a tutti i livelli: dalla sintassi utilizzata, alla convenzione di denominazione e allineamento fino agli algoritmi utilizzati, alla qualità dei commenti e alla complessità della distribuzione del codice tra i moduli.
più semplice esempio per la convenzione di denominazione:
if (filename.contains("blah"))
contro
if (S_OK == strFN.find(0, "blah"))
Parte di esso dipende dall'ambiente/API utilizzate, ma la maggior parte di esso è, naturalmente, la responsabilità dello sviluppatore
Anche il codice riutilizzabile è importante. Quindi non solo è importante la qualità del codice, ma dove lo metti. Esempio, la logica di business in un controller è un codice inutile
Dovrebbe funzionare anche correttamente. Altrimenti questa mi sembra una definizione eccellente. –
Buon punto, l'ho aggiunto alla risposta. – Ree