7.5 Manutenabilidade

Como discutido nas seções anteriores deste capitulo, programas declarativos tendem a ter um código mais simples e seguro. Essas características da programação declarativa facilitam a manutenção do sistema, uma vez que o programa é altamente modular e estes não possuem dependências implícitas.

Em contraste, a manutenção em programas imperativos tende a ser uma tarefa mais difícil já que esses possuem estados mutáveis com dependências implícitas e, possivelmente, subrotinas pouco expressivas. Uma forma de minimizar essa dificuldade é fazer uso do conceito de encapsulamento, ocultando assim toda parte “sensível” do programa (e.g., controle interno de um objeto, validações da regra de negócio, etc.), tornando assim o programa mais modular e por tanto, mais fácil de testar e manter. No paradigma procedimental, que não possui explicitamente um conceito de encapsulamento, podemos modularizar o código por subrotinas e bibliotecas.

Para simplificar o código em programas imperativos e minimizar a dificuldade de manutenção, existe uma série de recomendações/boas práticas a seguir durante o desenvolvimento, como por exemplo: usar nomes significativos para variáveis, cada função ou subrotina deve realizar apenas uma tarefa, comentar o código quando for necessário evidenciar alguma regra do negócio, etc. .