Telefono: 379 148 9430

Orari: dal lunedì al venerdì 9:00 - 18:00

Prima i commenti, poi il codice

blank

In questo articolo voglio parlare di un argomento che mi sta molto a cuore e che molti sviluppatori sembrano lasciare in secondo piano. Questo argomento rappresenta, oltre che una innegabile “best practice” nel modo di sviluppare codice, anche una forma di rispetto nei confronti della comunità di sviluppatori e ingegneri che dovranno rimettere mano al codice scritto da qualcun altro: sto parlando dei commenti al codice.

Un mio carissimo Professore universitario, il Prof. Carlo Gaibisso, nelle sue lezioni di “Programmazione strutturata” in linguaggio C diceva sempre questa frase: “Si scrivono prima i commenti e poi il codice”.

Come dargli torto?

Nonostante quella dei programmatori sia una classe di “animali da palcoscenico” nel mondo dell’informatica, e nonostante la preparazione che uno sviluppatore possa avere, è un dato di fatto che sia sempre più facile e immediato leggere qualcosa che appartenga al nostro comune modo di comunicare. È molto più semplice leggere in Italiano di cosa si occupa un algoritmo piuttosto di comprendere cosa faccia un algoritmo scritto in codice; diviene tanto più complesso comprenderlo quanto più è complesso l’algoritmo.

Anche la programmazione orientata agli oggetti congloba la programmazione procedurale. All’interno dei metodi di una classe si programma in modo procedurale.

La programmazione procedurale è così chiamata perché il codice viene eseguito secondo una procedura. Posso scrivere procedure per qualsiasi cosa… Ad esempio se devo calcolare la successione di Fibonacci so che per calcolare il numero al passo n devo prendere il numero precedente e sommarlo a quello ancora precedente.
Pertanto la procedura sarà: partendo da S = 1 1,  f3 -> Prendo f2 lo sommo a f1, e ottengo

S = 1 1 2

Prendo f3 = 2 lo sommo a f2 = 1 e ottengo

S = 1 1 2 3

Prendo f4 = 3 lo sommo a f2 = 2 e ottengo

S = 1 1 2 3 5

Comprenderete che è molto più facile capire istantaneamente la definizione: “Per calcolare il numero ennesimo della successione di Fibonacci sommo i due precedenti” rispetto a fn = fn-1 + fn-2 specie se questa formula è scritta con variabili e cicli all’interno di un algoritmo informatico!

esempio in PHP per il calcolo della serie di Fibonacci senza commenti

[php]<br /> &lt;?php<br /> class Fibonacci<br /> {<br /> public static function calcolaSuccessione($n)<br /> {<br /> $n = $n – 2;<br /> $a = 1;<br /> $b = 1;<br /> echo $a . &#039;&lt;br&gt;&#039;;<br /> echo $b . &#039;&lt;br&gt;&#039;;<br /> for ($i = 0; $i &lt; $n; $i++) {<br /> $c = $a + $b;<br /> echo $c . &#039;&lt;br&gt;&#039;;<br /> $a = $b;<br /> $b = $c;<br /> }<br /> }<br /> }</p> <p>Fibonacci::calcolaSuccessione(1000);<br /> [/php]

esempio in PHP con i commenti

[php]<br /> &lt;?php</p> <p>/**<br /> * Fibonacci è una classe per il calcolo della successione di Fibonacci<br /> * e la sua verifica<br /> *<br /> * Fibonacci è una classe per il calcolo della successione di Fibonacci<br /> * la verifica del rapporto aureo attraverso il rapporto tra termini successivi<br /> * la verifica tramite il triangolo di tartaglia e la verifica tramite<br /> * le uguaglianze di Cassini, Catalani e D&#039;Ocagne<br /> *<br /> * @author Simone Renzi<br /> * @version 1.0<br /> * @access public<br /> * @see http://renor.it<br /> *<br /> **/<br /> class Fibonacci<br /> {<br /> /**<br /> * @method calcolaSuccessione – Metodo statico per calcolare la successione<br /> * di Fibonacci per $n termini<br /> * @param int $n – Il numero di iterazioni<br /> * @return void non ha valori di ritorno, stampa solamente a schermo i valori<br /> * della serie ad ogni iterazione<br /> * @access public<br /> **/</p> <p> public static function calcolaSuccessione($n)<br /> {<br /> //Avendo due parametri fissi li rimuovo dalle iterazioni<br /> $n = $n – 2;<br /> $a = 1;<br /> $b = 1;<br /> //Stampo i due parametri di partenza<br /> echo $a . &#039;&lt;br&gt;&#039;;<br /> echo $b . &#039;&lt;br&gt;&#039;;<br /> //Ciclo per $n<br /> for ($i = 0; $i &lt; $n; $i++) {<br /> //Calcolo il valore della successione al passo $n<br /> $c = $a + $b;<br /> //Stampo a schermo il valore<br /> echo $c . &#039;&lt;br&gt;&#039;;<br /> //sposto i valori delle variabili<br /> //f2 diventa f1<br /> $a = $b;<br /> //f3 diventa f2, nella prossima iterazione verrà calcolato il nuovo f3<br /> $b = $c;<br /> }<br /> }<br /> }</p> <p>Fibonacci::calcolaSuccessione(1000);<br /> [/php]

Posso continuare ad applicare la procedura di prendere i due numeri precedenti all’infinito. Ovviamente calcolare una serie infinita di numeri richiede un tempo infinito quindi si opta per trovare la successione al termine dove è il numero di iterazioni per cui l’algoritmo dovrà eseguire la procedura.

Dalle immagini si nota che scrivere codice commentato in modo virtuoso richiede molte più righe e quindi più tempo ma in caso di manutenzione diventerà tutto estremamente più facile e veloce. Investiamo una piccola parte  del nostro tempo prima per non dover perdere intere giornate dopo.

Procedure

Posso applicare una procedura in qualsiasi contesto, anche per cucinare. Una ricetta altro non è che una procedura: prendere un pentolino, mettere 2 cucchiai di olio extravergine di oliva, aggiungere uno spicchio di aglio, un peperoncino piccante, accendere il fornello e cuocere a fuoco lento, ecc.

Le procedure sono insite all’interno delle funzioni e possono essere combinate tra loro per risolvere problemi più grandi. Tornando all’esempio di Fibonacci, un altro algoritmo potrebbe verificare che il rapporto tra due numeri consecutivi della serie di fibonacci approssima al crescere di sempre di più il rapporto aureo. Una ulteriore funzione potrebbe verificare che la successione ottenuta di n termini considerando la dei termini presenti su ciascuna diagonale del triangolo di tartaglia corrisponde alla successione di Fibonacci, ecc.

Al pari potrei dire che la procedura precedente utile per la preparazione del soffritto deve essere portata avanti al pari della procedure per cuocere la pasta.

Come avrete compreso una procedura si comprende meglio e in modo più veloce se ci sono commenti che ne descrivono i passi.

Si è soliti inserire prima i commenti e poi il codice perché questa pratica ci permette di scrivere codice molto velocemente senza dimenticarci nulla e lasciando agli altri programmatori che dovranno integrare altre funzioni di comprendere velocemente il famoso “cosa serve a cosa”. 

 

[starbox] 

Potrebbero interessarti anche

AI per la scrittura di articoli: scrivere senza delegare il pensiero
Sviluppo Software & Programmazione

lunedì, 29 Dicembre 2025

AI per la scrittura di articoli: scrivere senza delegare il pensiero

Con la creazione dell'infrastruttura di RunAI in RENOR & Partners, abbiamo sviluppato un plugin WordPress che aiuta gli autori...

Pubblicato da Simone Renzi

Da Zero a Packagist: pubblicare una libreria PHP su Composer
Sviluppo Software & Programmazione

lunedì, 12 Maggio 2025

Da Zero a Packagist: pubblicare una libreria PHP su Composer

Pubblicare un pacchetto Composer significa rendere il proprio codice installabile con un semplice comando da CLI composer requi...

Pubblicato da Simone Renzi

Una Classe di Statistica descrittiva in PHP
Sviluppo Software & Programmazione

lunedì, 12 Maggio 2025

Una Classe di Statistica descrittiva in PHP

Nel mondo dello sviluppo software l'analisi dei dati è sempre più centrale. Con l'avvento dell'intelligenza artificiale nel mercat...

Pubblicato da Simone Renzi

Watermark Invisibile in JPEG con PHP 8
Sviluppo Software & Programmazione

domenica, 11 Maggio 2025

Watermark Invisibile in JPEG con PHP 8

Proteggi le tue immagini modificando i coefficienti, senza rovinarle Pubblicare fotografie online è diventato indispensabile per f...

Pubblicato da Simone Renzi

Cosa diavolo cerchi? Un backend o un frontend?
Sviluppo Software & Programmazione

mercoledì, 12 Ottobre 2022

Cosa diavolo cerchi? Un backend o un frontend?

Come al solito, entrerò a gamba tesa perché essere diretto è nelle mie corde... L'avrete intuito dal titolo ???? Partiamo dalla ti...

Pubblicato da Simone Renzi

WordPress o soluzione custom?
Sviluppo Software & Programmazione

venerdì, 19 Agosto 2022

WordPress o soluzione custom?

Non c'è dubbio che Wordpress sia il CMS più utilizzato al mondo, la community dispone di più di 55000 plugin, è facile da installa...

Pubblicato da Simone Renzi