Che cos’è la comprensione del programma?

La comprensione del programma è la capacità di un programmatore di capire cosa fa il codice sorgente di un programma per computer. Nell’insegnamento dell’informatica, la comprensione di un programma è spesso trascurata a favore dell’apprendimento della meccanica e della sintassi del linguaggio informatico insegnato. Scrivere codice comprensibile, tuttavia, è un’esigenza universale, indipendentemente dal linguaggio informatico in cui è scritto. Se un programmatore scrive una libreria o un pezzo di codice, ma nessuno può determinare cosa fa in seguito, l’algoritmo e la logica dietro quel codice possono essere facilmente persi. È sempre più comune che i programmatori non riescano a decifrare il proprio codice, poiché spesso non è scritto in modo chiaro e intuitivo.

Ci sono due strategie principali che i programmatori possono usare per migliorare la comprensione del programma, e ognuna ha i suoi vantaggi e svantaggi. Il primo metodo consiste nell’aggiungere documentazione al codice durante o dopo la creazione del codice e il secondo consiste nello scrivere codice ponendo l’accento sulla sua struttura. Una combinazione di entrambi gli approcci è utile per la maggior parte dei programmatori, sebbene ci siano alcuni costruttori di codice che preferiscono una strategia rispetto a un’altra. Quale metodo utilizzare è una questione di preferenza personale da parte del programmatore e qualsiasi tentativo di chiarire il codice è molto meglio di niente.

Aggiungere documentazione al codice è il più semplice dei due metodi e, se fatto bene, può essere un aiuto molto utile per un programmatore che non ha familiarità con la lingua in cui è scritto il codice. La maggior parte dei linguaggi per computer ha uno stile di documentazione specifico per aiutare nella comprensione del programma. Se la documentazione del codice è scritta in modo completo, il primo passo di un nuovo programmatore può essere quello di leggere tutta la documentazione e i commenti per comprendere come funziona il programma, senza aver letto il codice. Invece di dipendere dalla sintassi e dalla meccanica del codice, il programmatore può vedere cosa sta succedendo in testo semplice, quindi collegare il testo con precisione a ciò che sta accadendo in un dato luogo. Tuttavia, quando aggiungono documentazione al codice, i programmatori devono essere cauti, perché troppa documentazione può essere fonte di confusione e invadente, piuttosto che utile.

Quando si scrive codice con un’enfasi sulla struttura, un programmatore presume che qualsiasi altro manutentore che guarda il suo codice avrà una conoscenza equivalente della sintassi e della meccanica del linguaggio. A volte, questo è un presupposto valido, ma non sempre ci si può fare affidamento. La comprensione del programma basata in gran parte sulla struttura è possibile, ma richiede molto più lavoro da parte del programmatore originale per facilitarla. La meccanica e la sintassi del linguaggio devono essere seguite esattamente, così come tutte le convenzioni stilistiche, e tutto deve essere coerente. Quando scrive codice in questo modo, un programmatore deve sempre essere consapevole che ciò che è chiaro per lui potrebbe non essere chiaro per un’altra persona.

Anche quando si scrive codice con un occhio alla comprensione del programma in un secondo momento, potrebbe essere necessaria ulteriore documentazione o modifiche strutturali in seguito. Questa è una parte naturale della manutenzione del codice e non un errore per mano del programmatore. Il lavoro di un programmatore è quello di anticipare il maggior numero possibile di problemi di comprensione, ma non sempre tutti vengono colti.