O que é a compreensão do programa?
A compreensão do programa é a capacidade do programador de entender o que o código fonte de um programa de computador faz. No ensino de ciências da computação, a compreensão de um programa é freqüentemente negligenciada em favor do aprendizado da mecânica e da sintaxe da linguagem de computador que está sendo ensinada. Escrever código compreensível, no entanto, é uma necessidade universal, independentemente da linguagem de computador na qual está escrito. Se um programador escreve uma biblioteca ou parte de código, mas ninguém pode determinar o que faz depois, o algoritmo e a lógica por trás desse código podem ser facilmente perdidos. É cada vez mais comum que os programadores não consigam decifrar seu próprio código, pois ele não é escrito de maneira clara e intuitiva.
Existem duas estratégias principais que os programadores podem usar para melhorar a compreensão do programa, e cada uma tem suas próprias vantagens e desvantagens. O primeiro método é adicionar documentação ao código durante ou após a criação do código, e o segundo é escrever código com ênfase em sua estrutura. Uma combinação de ambas as abordagens é útil para a maioria dos programadores, embora existam alguns criadores de código que preferem uma estratégia a outra. Qual método usar é uma questão de preferência pessoal do programador, e qualquer tentativa de esclarecer o código é muito melhor do que nenhuma.
Adicionar documentação ao código é o mais simples dos dois métodos e, quando bem executado, pode ser uma muleta muito útil para um programador não familiarizado com o idioma em que o código está escrito. A maioria das linguagens de computador possui um estilo de documentação específico para ajudar na compreensão do programa. Se a documentação do código for completamente escrita, o primeiro passo de um novo programador pode ser ler toda a documentação e comentários para entender como o programa funciona, sem ter lido o código. Em vez de depender da sintaxe e da mecânica do código, o programador pode ver o que está acontecendo em texto simples e relacionar o texto exatamente ao que está acontecendo em um determinado local. Ao adicionar documentação ao código, no entanto, os programadores devem ser cautelosos, porque muita documentação pode ser confusa e intrusiva, e não útil.
Ao escrever um código com ênfase na estrutura, um programador assume que qualquer outro mantenedor que observe o código terá um conhecimento equivalente da sintaxe e da mecânica da linguagem. Às vezes, essa é uma suposição válida, mas nem sempre é possível confiar nela. A compreensão do programa baseada em grande parte na estrutura é possível, mas é necessário um trabalho significativamente maior por parte do programador original para facilitar isso. A mecânica e a sintaxe da linguagem devem ser seguidas exatamente, bem como todas as convenções estilísticas, e tudo deve ser consistente. Ao escrever código dessa maneira, um programador deve sempre estar consciente de que o que está claro para ele pode não estar claro para outra pessoa.
Mesmo ao escrever código com atenção para posterior compreensão do programa, documentação adicional ou modificações estruturais podem ser necessárias posteriormente. Essa é uma parte natural da manutenção do código e não uma falha nas mãos do programador. O trabalho de um programador é antecipar o maior número possível de problemas de compreensão, mas nem sempre eles são detectados.