<Precedenti | Contenuti | Succ.>
Verifica dell'input
Una regola generale di buona programmazione è che se un programma accetta input, deve essere in grado di gestire tutto ciò che riceve. Questo di solito significa che l'input deve essere attentamente vagliato, per garantire che solo input valido sia accettato per l'ulteriore elaborazione. Ne abbiamo visto un esempio nel capitolo precedente, quando abbiamo studiato il read comando. Uno script conteneva il seguente test per verificare una selezione di menu:
[[ $RISPOSTA =~ ^[0-3]$ ]]
[[ $RISPOSTA =~ ^[0-3]$ ]]
Questo test è molto specifico. Restituirà uno stato di uscita zero solo se la stringa immessa dall'utente è un numero compreso tra zero e tre. Nient'altro sarà accettato. A volte questo tipo di test può essere molto impegnativo da scrivere, ma lo sforzo è necessario per produrre uno script di alta qualità.
Il design è una funzione del tempo
Quando ero uno studente universitario che studiava design industriale, un saggio professore dichiarò che la quantità di design su un progetto era determinata dal tempo dedicato al designer. Se ti sono stati dati cinque minuti per progettare un dispositivo "che uccide le mosche", hai progettato uno scacciamosche. Se ti venissero dati cinque mesi, potresti invece inventare un "sistema anti-mosca" a guida laser.
Lo stesso principio si applica alla programmazione. A volte uno script "rapido e sporco" funzionerà se verrà utilizzato solo una volta e utilizzato solo dal programmatore. Questo tipo di script è comune e dovrebbe essere sviluppato rapidamente per rendere lo sforzo economico. Tali script non hanno bisogno di molti commenti e controlli difensivi. D'altra parte, se uno script è destinato a uso produttivo, cioè, uno script che verrà utilizzato più e più volte per un'attività importante o da più utenti, ha bisogno di uno sviluppo molto più attento.