Programmare con stile (1)

misc37.jpg

Sono sempre stato un maniaco dello stile di programmazione a partire dalla formattazione del codice. Una delle più interessanti guide sullo stile di programmazione si trova direttamente nei sorgenti del kernel Linux:

<linux-source-directory>/Documentation/CodingStyle

E’ un’ottima documentazione e vorrei condividerla con i miei lettori traducendola in italiano. Trattandosi di una guida per la scrittura di codice del kernel Linux, sono presenti alcune riferimenti o paragrafi riguardanti tale tipo di programmazione, ove possibile, quindi, sarà fornita una versione ritagliata e riadattata per essere di carattere più generale possibile.

CAPITOLO 1: Formattazione

Il carattere speciale “Tab” equivale a 8 caratteri, quindi anche la formattazione del codice è basata su spazi di 8 caratteri. Ci sono movimenti eretici che provano ad usare formattazioni basate su spaziature a 4 (o anche 2!) caratteri, questo equivale a dire che il valore esatto di PI è 3.

Spiegazione razionale: Il concetto che è alla base di una buona formattazione è di definire in maniera chiara l’inizio e la fine di un blocco di codice. Specialmente quando hai trascorso 20 ore consecutive a fissare il tuo schermo, troverai molto più facile distinguere i vari blocchi se avrai fatto uso di una formattazione più larga.

Ora, qualcuno potrebbe obiettare che, avendo una formattazione basata su spaziature a 8 caratteri, il codice si sposti troppo velocemente verso destra, rendendolo di difficile lettura su un schermo di un terminale a 80 caratteri. La risposta a questo è che, se tu hai bisogno di più di 3 livelli di profondità, stai comunque sbagliando e devi sistemare il tuo codice.

In poche parole la formattazione con spaziature a 8 caratteri rende il codice più facilmente leggibile e ha il valore aggiunto di avvertirti quando stai annidando troppo in profondità le tue funzioni.

Non inserire più dichiarazioni su una singola linea a meno che non hai qualcosa da nascondere:

if (condition) do_this;
  do_something_everytime;

Fatta eccezione per i commenti e la documentazione non vengono mai utilizzati singoli spazi per la formattazione e l’esempio qui sopra è volutamente errato.

Usa un editor decente e evita di lasciare spazi alla fine delle linee.

Per questa puntata è tutto, nella prossima vedremo come spezzare le righe lunghe di codice e come posizionare le parentesi.

Parte 2

21 pensieri su “Programmare con stile (1)

  1. in attesa della prossima allora!🙂
    Per posizionare le parentesi io dico già che sono un eretico che usa la formattazione bsd – like…
    ai tempi della tesi avevo configurato emacs (grande editor in questo senso – assieme ad altri aspetti) perchè l’indentazione fosse gestita dall’editor, in stile bsd…
    figata…🙂

  2. 8 caratteri, 3 livelli funziona, ma come la mettiamo con le righe lunghe?
    Io devo vedere a schermo la maggior parte del codice che sto editando quindi preferisco una spaziatura a 3 o 4 caratteri.

  3. Della spaziatura con il TAB a 8 caratteri chissà che cosa ne direbbe il buon Guido Van Rossum, creatore e nume tutelare dell’ottimo Python, visto che sostiene la necessità di usare 4 spazi per ogni indentazione😉

    P.S. ricordo che in python p.es. l’indentazione è tutto. Si indenta ogni classe e ogni funzione (def); se 3 indentazioni fossero il massimo, uno potrebbe inserirci solo un blocco condizionale e finirebbe lì😛
    E’ un buon stile ma non va bene per tuti i linguaggi.

  4. non sono d’accordo
    la spaziatura a 8 caratteri è troppo
    secondo me è meglio avere un editor che evidenzia gli indentamenti e farli da 4 spaziature..

    in quanto a ( + di 3 livelli è troppo ) avrei qualcosa da ridire anche qui..
    è facilissimo arrivare a 5 livelli:

    metodo -> if -> ciclo for -> ciclo for -> if

    non è una cosa sbagliata, né qualcosa che capita di rado.. se si lavora con le immagini

    quando chiedo che tool di sviluppo usano agli sviluppatori C++ mi rispondono quasi tutti Vim
    percarità.. Vim è un bellissimo software, lo uso spessissimo per i file di configurazione Linux…
    ma io quando parlo di tool di sviluppo ho in mente qualcosa come Eclipse per Java….

    non ho mai capito perché utilizzare Vim…
    o meglio.. mi andrebbe bene un tool di sviluppo come eclipse che integrasse un sistema “alla vim” al suo interno..

    mah..
    cmq anche qui.. se si usa il carattere /tab non vedo quale sia il problema… nell’editor ognuno imposta se vuol vedere uno spazio di 4 o di 8 per i TAB🙂

    quando trovo un indentamento a spazi (e non tab) mi da molto fastidio

  5. @LukenShiro:
    Hai ragione, il python è un discorso a parte!😛

    @mastro:
    Uso Vim e terminale a 80 caratteri per programmare, ogni giorno sono oggetto di critiche da parte di amici e colleghi, ma credo che la scelta dell’editor e del modo di programmare sia strettamente personale e soggettiva…come la fede calcistica o politica!🙂

  6. TAB a 4 per la vita, odio smisurato per chi usa le spaziature a singoli caratteri o lascia spazi alla fine delle righe!
    Devo – DEVO – imparare a stare entro gli 80 caratteri😛

  7. @Daniele:
    Grazie, è un onore!🙂

    @Marco:
    Propongo di fondare un’associazione pro TAB a 8 caratteri!😛

    @Tutti:
    Credo che domani posterò la seconda parte della guida…slurp slurp…ghiottoni!😀

  8. In effetti il tab a 4 evita cose del tipo:
    if
    if
    Che qui si vede con uno spazio ragionevole, ma provate a metterlo in un editor di testi “normale”. La spaziatura tra gli if diventa molto più evidente.
    In ogni caso, le guerre di religione servono a poco, l’importante è che il codice sia leggibile e comprensibile, se si vuole avere facile manutenzione o si vuole che altri (o se stessi dopo un mese) riescano a capirci qualcosa.

  9. Acchio, addirittura lo script della pagina annulla gli spazi iniziali!!! Infatti i due if compaiono uno sotto l’altro! Va beh, l’importante è che si capisca cosa volevo dire

  10. Pingback: Top Posts « WordPress.com

  11. Ottima guida , ovvio che va adattata al linguaggio di programmazione. Il Tab a 8 caratteri può sembrare eccessivo , ma la cosa mi convince.
    Concordo anch’io che più di tre livelli di nidificazione sono troppi ed andrebbero evitati il piu’ possibile.

    @henomis Quando hai pubblicato tutte le parti potresti unirle per farne una sorta di mini documento da tenere appeso vicino al monitor🙂

  12. una curiosità da super ultra niubbo😀 la guida è utile anche per chi inizia a scriptare con linguaggi, del tipo php, o essendo una formattazione per codici linux, è opportuno applicarla solo a quest’ultimo?😀

    grazie

  13. @lostbob:
    Ok appena terminate le puntate preparerò un PDF!

    @nikopolidis:
    Per quanto riguarda PHP vai tranquillo si adatta alla grande…poi quando esamineremo i formattatori automatici potrai provare a vedere il risultato su un codice scritto in maniera non formattata.

  14. Pingback: Programmare con stile di Simone Vellei (Henomis) at Notizie informatiche

  15. Caro henomis, te plaudo !

    bella idea quella di tradurre le CodingStyle di Linus…
    …. peccato io usi python e quindi rimango col imo TAB a 4 caratteri🙂

    e in ogni caso… viva Vim !

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...