Clean code: scrivere codice (almeno) decente

Se siete su questo blog probabilmente siete degli sviluppatori, ed almeno una volta nella vostra vita professionale avrete sentito queste frasi, o magari le avete pensate voi stessi:

  • “Non c’è tempo di scrivere codice fatto bene, piuttosto sbrighiamoci”
  • “Basta che funziona” (in risposta a “questo codice fa schifo, non si capisce niente”)
  • “Sì, tanti professoroni all’università e gli scrittori dei libri fanno tanto i precisini, ma quelle cose sul lavoro non si fanno, ci sarà un motivo!”

Queste e tante altre, tutte a favore del codice scritto male, ma in fretta e contro il codice ben scritto, che magari impiega più tempo.
Adesso la reazione che ho di fronte a queste frasi è più o meno questa:

A me è capitato spesso di torcere il naso di fronte a codice che io stesso stavo scrivendo, ma non sapevo bene per quale motivo. Ero ad un punto in cui riuscivo a capire quando un codice faceva schifo, ma quando invece avevo un buon codice? Un codice pulito?

Poi un bel giorno, quasi per caso, mi sono trovato sullo schermo (sì, compro su Amazon) e poi tra le mani Clean Code, di Robert Cecil Martin, detto Uncle Bob.

Il libro inizia con la definizione di un’ottima unità di misura per la bontà del codice:

http://www.osnews.com/story/19266/wtfs_m7

Il buon codice

Avanti, onestamente: il vostro è un buon codice? Una volta che avete scritto un pezzo di codice, tremate all’idea di rimetterci le mani? Preferite non toccarlo, anche se funziona male, per evitare che il castello di carte crolli? Quando lo rileggete il numero di WTF/m aumenta? Bene, il vostro non è certo un buon codice. E di chi è la colpa? Facile: nostra. Non siamo stati professionali. Uno potrebbe dire “Eh, ma il dottor Ciccio Patuccio del Marketing mi ha messo fretta, ci teneva a consegnare questa roba in fretta, non voleva sentire ragioni”. OK, va bene, ma avete messo in guardia il dottor Ciccio Patuccio sui rischi del fare un gran macello? No? Bene, questo non è professionale, ed ancora una volta la colpa è nostra.
Quindi basta scrivere codice in maniera pulita, e ho risolto? Vi piacerebbe! Come dice Uncle Bob (e non posso che essere d’accordo con lui) non è bene tentare di scrivere buon codice senza sapere cos’è un buon codice. E’ come cercare di fare una buona pizza senza sapere cos’è una buona pizza: si fa presto a cedere ad una piccola follia, ed ecco che finite a metterci l’ananas sopra. “OK, ma se io so riconoscere un un buon codice poi lo so anche scrivere”. Bene, avete presente la Cappella Sistina? Riconoscerete senz’altro che è un’opera d’arte straordinaria, ma questo non significa che voi sareste in grado di affrescare la Cappella Sistina bis.
“Ok, ma allora diccelo tu come si scrive del buon codice!”. Cattive notizie: per scrivere del buon codice non c’è una tecnica, ma una miriade di piccole tecniche. Queste piccole tecniche vanno applicate scrupolosamente, ogni giorno, per acquisire un senso di “pulizia”. Questo senso del codice è la chiave di tutto: un programmatore col senso del codice riesce a guardare ad un codice disastrato e a trovare opzioni da valutare, nonché variazioni da fare, per trasformarlo.

Pierpaolo Paris

Sono uno dei tanti che sono entrati nel girone infernale di Ingegneria Informatica, e che poi ne è anche uscito. Attualmente lavoro come sviluppatore presso una società di consulenza. Ogni tanto mi diletto con la fotografia.

2 thoughts on “Clean code: scrivere codice (almeno) decente

  1. Concordo in pieno.

    Non hai parlato della faccia che fanno colleghi e capi vari quando cerchi di spiegare che un BUG “intellettuale” è comunque un BUG anche se il codice “funziona”, altro aspetto interessante direi. eheheh

Lascia un commento

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