<Anterior | Conteúdo | Próxima>
Verificando a entrada
Uma regra geral de boa programação é que, se um programa aceita entradas, deve ser capaz de lidar com qualquer coisa que receber. Isso geralmente significa que a entrada deve ser cuidadosamente selecionada, para garantir que apenas a entrada válida seja aceita para processamento posterior. Vimos um exemplo disso no capítulo anterior, quando estudamos o ler comando. Um script continha o seguinte teste para verificar uma seleção de menu:
[[$ REPLY = ~ ^ [0-3] $]]
[[$ REPLY = ~ ^ [0-3] $]]
Este teste é muito específico. Ele só retornará um status de saída zero se a string inserida pelo usuário for um numeral no intervalo de zero a três. Nada mais será aceito. Às vezes, esses tipos de teste podem ser muito desafiadores para escrever, mas o esforço é necessário para produzir um script de alta qualidade.
Design é uma função do tempo
Quando eu era um estudante universitário estudando desenho industrial, um sábio professor afirmou que a quantidade de design em um projeto era determinada pela quantidade de tempo dada ao designer. Se você teve cinco minutos para projetar um dispositivo “que mata moscas”, você projetou um mata-moscas. Se você tivesse cinco meses, poderia criar um “sistema anti-mosca” guiado a laser.
O mesmo princípio se aplica à programação. Às vezes, um script “rápido e sujo” serve se for usado apenas uma vez e apenas pelo programador. Esse tipo de script é comum e deve ser desenvolvido rapidamente para tornar o esforço econômico. Esses scripts não precisam de muitos comentários e verificações defensivas. Por outro lado, se um script se destina a uso de produção, ou seja, um script que será usado continuamente para uma tarefa importante ou por vários usuários, ele precisa de um desenvolvimento muito mais cuidadoso.