Clean Code: codice pulito… e profumato!

Cover

Uno dei temi tra quelli più frequentemente discussi in questo periodo tra gli sviluppatori è quello del Clean Code, che tradotto letteralmente significa appunto codice pulito.

Ma cosa si intende con questo termine? A prima vista è facile pensare che si tratti di una nuova buzz word in voga al momento, ma in realtà la definizione nasconde molto di più.

Che cos’è il Clean Code?

Posso rassicurarvi sul fatto che Clean Code non è un nuovo marchio di fabbrica dietro il quale si nasconde un capitolato di rigide norme sulle quali non si può transigere pena la perdita del “bollino di qualità” o di una qualsivoglia certificazione ISO.

Tutto nasce dal libro di Robert “Uncle Bob” Martins, Clean-Code: A Handbook of Agile Software Craftsmanship, la cui prima pubblicazione risale al 2008. Sebbene il libro sia in circolazione già da qualche anno, sento parlare pochissimo di questa tematica, che invece – a mio avviso – è estremamente importante e rappresenta un must have, o meglio un must know per chiunque voglia definirsi uno sviluppatore professionista.

Il libro contiene consigli e suggerimenti che aiutano lo sviluppatore a scrivere codice pulito, ovvero codice che risulti chiaro e leggibile, e di conseguenza facilmente mantenibile, sia da altri sviluppatori sia dal “se stesso” del futuro, che ne sarà molto grato. Come direbbe Marco Montemagno, «That’s it!». 🙂

Uncle Bob espone in modo chiaro le pratiche da seguire nella scrittura del codice, e anche le trappole da evitare, fornendo anche numerosi esempi di codice a corredo, scritti in linguaggio Java e fondamentali per fissare i concetti. Se utilizzate un linguaggio di programmazione differente, non temete: gli esempi saranno comprensibili comunque senza alcuna difficoltà.

Io la considero una lettura imprescindibile, alla pari del celebre Design Patterns: Elements of Reusable Object-Oriented Software della mitica Gang of Four, e anche un bagaglio culturale indispensabile, come lo sono i principi SOLID o la misurazione e limitazione della complessità intrinseca del codice espressa dalla Cyclomatic Complexity.

I principi in breve

Gli argomenti trattati dal volume sono molteplici e affrontano diversi ambiti della scrittura del codice. Si inizia dalla valutazione del costo intrinseco che le software house sostengono per la manutenzione di codice confusionale, o per riscrivere progetti “nati male” che finiscono inesorabilmente per diventare una nuova Big Ball of Mud.

Clean Code - Meaningful NamesSi prosegue con le regole di buona condotta per scrivere codice che abbia invece un futuro roseo, spaziando dalla scelta di nomi corretti per gli identificatori, che siano intelligibili e ricercabili, alla dimensione e struttura dei metodi, al numero di azioni che compiono, fino al numero ideale di parametri che dovrebbero avere. Si passa poi alla scrittura di commenti che siano efficaci, alla corretta gestione (e generazione) degli errori durante l’esecuzione e così via. Si termina infine con l’approccio giusto per suddividere i contesti applicativi che influiscono direttamente sull’organizzazione dei moduli software.

Mi fermo qui, inutile spendere altre parole: la gamma di problematiche affrontate dal testo sono così estese che qualunque sintesi non le rende giustizia.

Parliamone assieme…

Se siete interessati all’argomento, ne parlerò (in modo approfondito) nel seminario che si terrà a Piacenza il prossimo 6 giugno, in occasione del Delphi Day 2018.

Potete partecipare seguendo il link, anche se utilizzate un linguaggio differente: sebbene gli esempi siano scritti ovviamente in Delphi, i concetti che rappresentano la parte più sostanziosa saranno esposti in modo comprensibile a chiunque.

Mi raccomando quindi… da oggi, fate risplendere il vostro codice rendendolo pulito, e anche profumato! 😜

Got Something To Say:

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

*

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Copyright © 2018. Powered by WordPress & Romangie Theme.