The Elements of Programming Style

Ancora un libro scritto da Brian Kerninghan insieme a J.Plauger, che insieme a TAOCP, a "Algorithms+Data structures=Program" di Niklaus Wirth e "Structure and Interpretation of Computer Programs" di H.Abelson e G.Sussman fa parte dei testi sacri del programamtore di ogni epoca.

Il titolo fa esplicito riferimento ad un manuale di bella scrittura degli inizi del '900 ("The Elements of Style", di Strunk e White). L'obiettivo è presentare una serie di concetti e di buone pratiche per aiutare il programmatore a scrivere con "stile".

Qui la parola "stile" - come nel testo a cui si ispira - non si riferisce ai gusti personali del programmatore, ma al contrario alle regole che rendono un testo più comprensibile da parte dei lettori.

Malgrado il fatto che i linguaggi usati (Fortran e PL/I) siano praticamente scomparsi oggi, e che appartenessero ad un paradigma superato, i 63 suggerimenti stilistici proposti alla fine di ogni sezione continuano ad essere validi. Ad esempio:

  • Write clearly – don't be too clever.
  • Say what you mean, simply and directly.
  • Write clearly – don't sacrifice clarity for efficiency.
  • Let the machine do the dirty work.
  • If a logical expression is hard to understand, try transforming it.
  • Write first in easy-to-understand pseudo language; then translate into whatever language you have to use.
  • Don't patch bad code – rewrite it.
  • Make sure your code does "nothing" gracefully.
  • Make it right before you make it faster.
  • Make it clear before you make it faster.
  • Don't comment bad code – rewrite it.
  • Use variable names that mean something.
  • Format a program to help the reader understand it.
Per spiegare questi concetti in maniera concreta vengono presentati degli esempi presi da codici sorgenti reali o da manuali di programmazione, a volte anche per evidenziarne gli errori.

Qui sotto un'intervista a Brian Kerninghan sul contenuto del libro:

Prossimo pannello:  Bazaar



Versione: 03/02/2022 - 09:16:58

Parole: 210

Pannelli

Libreria                    
TAOCP                       
Elements                    
Bazaar                      
10print                     
Aesthetic Programming       
Critical Code Studies       
🔎