PHPBlog.it

Lunghezza, volume e densità: questione di stile

Leggo dal blog di Paul M. Jones un’interessante spunto di riflessione sullo stile di programmazione, nel senso stretto del codice realizzato, in cui si parla dei parametri e delle metriche utili alla definizione dello stile in esame. Oltre alle sue idee aggiungo qualche appunto personale dettato dall’esperienza personale, attendo fiducioso anche i vostri commenti.

Parlando di stili di programmazione sono molte le idee su come andrebbero scritte le singole linee di codice. La prima è sicuramente quella che riguarda la lunghezza delle varie linee, non c’è solo questo ma molto altro. Gli sviluppatori dovrebbero dare attenzione al volume delle righe (proprio il numero) e la densità delle stesse (numero di operazioni).

Lunghezza
Dal PEAR style guide apprendiamo che la lunghezza della singola linea di codice non deve eccedere i 75-85 caratteri. Questo limite non è dettato da problemi di wrapping errato o dimensioni dei monitor non sufficienti ad una giusta visualizzazione si tratta piuttosto di un limite cognitivo dell’individuo che si trova a leggere il codice.

Molto tempo fa alcuni studi sull’editoria sancirono che un lettore medio non potesse andare oltre alle 10-12 parole (5 caratteri) per riga senza avere problemi a comprendere il significato di ciò che ha letto nel contesto più ampio della totalità delle righe. Ora maggiorando questo limite di un 25-50% si arriva fino a 15 parole che a 5 caratteri l’una ci portano a 75 caratteri per riga.

Detto questo è chiaro che la lunghezza non è un parametro oggettivo, ogni programmatore ha i propri limiti quindi quello che io riesco a leggere e comprendere in una stringa di testo sarà sicuramente diverso dalla maggior parte degli altri programmatori.

Volume e densità
Alcuni programmatori credono che si dovrebbe scrivere quanto più possibile in ogni singola riga per ridurne il numero complessivo. Facendo questo però riducono il volume a discapito della densità (complessità) della singola riga di codice. Andando ad aumentare la densità di una riga si aumenta in modo inversamente proporzionale la sua leggibilità, il codice è composto da molte azioni non si tratta di prosa…inoltre scrivendo troppe istruzioni nella stessa linea si perde di vista il flusso logico di ciò che si sta realizzando.

E’ quindi preferibile privilegiare la leggibilità con un po’ di buon senso pensando al futuro e pensando a chi metterà mano al vostro codice. Infatti lavorando in questo modo tra un anno o più potrete lavorare sul vostro codice riuscendo a capire facilmente come funziona, lo stesso varrà per qualche altro programmatore.

Aumentare il volume delle righe e diminuirne la densità ha 3 benefici:

  1. maggiore leggibilità del codice
  2. la maggiore leggibilità rende più semplice la comprensione del codice e del suo flusso
  3. in acuni casi (vi rimando all’esempio originale) il codice guadagna in velocità di esecuzione

Compromesso
E’ dunque lasciato al programmatore trovare il giusto compromesso tra volume e densità senza sbilanciarsi in situazioni estreme a favore di uno o dell’altro parametro. L’esperienza insegnerà sicuramente ad affinare la propria tecnica ed agire di conseguenza.

Personalmente ritengo molto importante lo stile di scrittura del codice includendo tra l’altro il corretto utilizzo dell’indentazione e l’inserimento dei commenti (sensati) per rendere il codice semplice da comprendere a distanza di tempo. Lavorare dopo alcuni giorni su del codice è un conto, farlo anche solo dopo alcuni mesi può diventare un’impresa ardua se il codice non è scritto in modo rispettoso si queste semplice regole.

E voi come agite, cosa ne pensate di queste regole che potremmo definire “best-practice”?

Commenti

  • Questo articolo è stato segnalato su ZicZac.it….

  • upnews.it scrive:

    Lunghezza, volume e densità: questione di stile…

    Leggo dal blog di Paul M. Jones un’interessante spunto di riflessione sullo stile di programmazione, nel senso stretto del codice realizzato, in cui si parla dei parametri e delle metriche utili alla definizione dello stile in esame. Oltre alle sue i…

  • diggita.it scrive:

    Lunghezza, volume e densità: questione di stile…

    Leggo dal blog di Paul M. Jones un’interessante spunto di riflessione sullo stile di programmazione, nel senso stretto del codice realizzato, in cui si parla dei parametri e delle metriche utili alla definizione dello stile in esame. Oltre alle sue i…

  • davide borsatto scrive:

    le “best-practice” secondo lo zend framework sono illustrate qui
    http://framework.zend.com/manual/en/index.html

  • Paolo scrive:

    io ritengo che i commenti al codice siano una delle cose fondamentali che un programmatore deve fare; che poi queste aumentino il numero di righe, poco importa.. sul numero max di circa 80 caratteri per riga, mi trovo pressocchè daccordo, anche se spesso mi capita di sforare..

  • Daniel scrive:

    @Paolo
    Certo, come detto a fondo articolo sono fondamentali per il programmatore e per gli altri che lavoreranno sul codice a distanza di tempo.
    Sulla lunghezza delle righe chiaramente a volte è utile andare oltre, ma non deve diventare la prassi.

  • Paolo scrive:

    Generalmente sforo quando faccio gli echo di alcune parti di testo un po’ lunghe.. a volte vado a capo dopo i famigerati 80 caratteri, ma quando poi capita di aggiungere nuove parole, sforo e se vado a capo mi ritrovo con una riga in più di pochi caratteri (meno di 30..); in questo caso voi come vi comportate? sono consapevole che si sta parlando di finezze…

  • Daniel scrive:

    Un paio di tab per portare la nuova riga allo stesso livello del testo della precedente, eventualmente accorcio la prima e le rendo uguali o vicine in lunghezza.

  • Lascia un Commento

    *