Programmare con stile (4)

misc40.jpg

Un buon stile di programmazione si riconosce anche da come il codice viene commentato. Descrivere in maniera adeguata il codice permette anche ad altri programmatori di capirne il funzionamento. Gli strumenti GNU, inoltre, ci aiutano in maniera automatica o semi-automatica nella formattazione del codice.

Capitolo 6: Commentare il codice

Commentare è una buona abitudine, a volte, però, si rischia di eccedere nella descrizione del codice. Non cercare MAI di spiegare nei commenti COME funziona il tuo codice: è molto meglio scrivere il codice in modo tale che il funzionamento risulti ovvio, è una perdita di tempo cercare di spiegare del codice scritto male.

In generale, i commenti servono per spiegare COSA fa il tuo codice, non COME. Cerca di evitare, inoltre, di inserire commenti all’interno del corpo di una funzione: se la funzione è così complessa che hai bisogno di commentare individualmente alcune sue parti, probabilmente dovresti rileggere bene il capitolo 5. Puoi inserire piccoli commenti per evidenziare qualcosa di ingegnoso o avvertire di qualche pericolo, in tutti i casi cerca di evitare gli eccessi. Inserisci, piuttosto, i commenti in testa alla funzione, spiegando cosa fa e possibilmente PERCHE’.

Capitolo 7: Avete combinato un pasticcio

Bene, ci siamo, abbiamo fatto tutto. Probabilmente la vostra persona di riferimento, vecchio esperto Unix, vi avrà rivelato che “GNU emacs” formatta automaticamente il codice C per te, e tu avrai notato che sì, fa questo, ma le impostazioni di default che usa lasciano a desiderare (in effetti, sono peggiori di una scrittura casuale – un numero infinito di scimmie che scrivono con GNU emacs non produrranno mai un buon programma).

Quindi, o decidi di buttare GNU emacs, o cambiare le impostazioni di default con alcune più sensate. Se avete scelto la seconda potete inserire all’interno del vostro file .emacs le seguenti righe:

(defun linux-c-mode ()
  "C mode with adjusted defaults"
  (interactive)
  (c-mode)
  (c-set-style "K&R")
  (setq tab-width 8 )
  (setq indent-tabs-mode t)
  (setq c-basic-offset 8 ))

Questo definirà il comando M-x linux-c-mode. Quando scrivi un programma inserisci la stringa -*- linux-c -*- da qualche parte nelle prime due linee, così il comando verrà invocato automaticamente. Inoltre potresti inserire, ad esempio

(setq auto-mode-alist
(cons '("/usr/src/linux.*/.*.[ch]$" . linux-c-mode)
auto-mode-alist)

nel tuo file .emacs se vuoi avere automagicamente la modalità linux-c-mode quando modifichi i sorgenti presenti nella directory /usr/src/linux.

In tutti i modi se non riesci ad avere un emacs che formatti in maniera sensata il tuo codice, non tutto è perduto: usa “indent”.

Ancora una volta GNU indent ha la stessa assurda impostazione che ha GNU emacs, ecco perchè hai bisogno di passargli qualche impostazione da riga di comando. Tuttavia, non è così male, perchè anche gli autori di GNU indent riconoscono l’autorità di K&R (i programmatori GNU non sono il diavolo, sono solamente molto disorientati in questa faccenda).

“indent” ha moltissime opzioni, e, specialmente quando viene usato per riformattare i commenti, dovresti prestare attenzione alla pagina man. Ma ricorda: “indent” non corregge gli errori di una brutta programmazione.

In questa puntata abbiamo scoperto come commentare correttamente il codice e come “piegare” GNU emacs e GNU indent alle volontà dello stile K&R. Aggiungerei una nota strettamete personale nella scelta dell’editor: usate vi con l’impostazione di default e vivrete felici! Nel prossimo (ultimo) appuntamento vedremo come usare efficacemente le macro preprocessore.

Parte 3 | Parte5

3 pensieri su “Programmare con stile (4)

  1. Pingback: Top Posts « WordPress.com

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...