Penso che la soluzione diretta, specialmente per il tipo di problema che hai esemplificato, sia quella di fare errori vistosi .
Se guardi le due linee che hai dato, la differenza è in realtà piuttosto sottile. Devi avere molta sintassi dettagliata e sfumata "nella tua mente" quando la leggi se vuoi cogliere l'errore. Devi anche tenere d'occhio le caratteristiche visive difficili da vedere ( *
e 0
possono essere facili da confondere).
Ad esempio, nel tuo esempio, se la sintassi cron
era simile alla seguente:
minute=0 hour=4 day=every week=every month=every year=every
È meno probabile che lo confondano con:
minute=every hour=4 day=every week=every month=every year=every
Non puoi davvero cambiare la sintassi di cron, ma tu potresti scrivere un semplice programma CLI per te stesso che prende argomenti denominati come sopra, e poi li passa al cron
effettivo. Dovresti rivedere attentamente il codice che converte dagli argomenti nominati, ma devi farlo solo una volta, quindi puoi permetterti di concentrarti davvero e fare il miglio in più nel controllo degli errori - stampare il codice, leggere e spiegare a te stesso ad alta voce e così via.
Quando hai un programma come questo, puoi anche aggiungere un controllo di integrità. Dopo aver creato un nuovo cron job, fallo pubblicare:
This new job will run 1 times a day.
(forse cerca di trovare il periodo di tempo più breve che si traduce in un numero intero)
Ora sarà davvero difficile per te commettere lo stesso errore. Il tuo compromesso è:
- Ora sono necessarie più sequenze di tasti per digitare i comandi e appaiono più impegnativi (probabilmente perché
cron
ha ricevuto la sintassi che era in primo luogo).
- Hai speso tempo e sforzi per impostare il modello di interfaccia resistente agli errori e il controllo di integrità (ma in questo caso puoi probabilmente farlo in un'ora o due).
Ora, non sto necessariamente suggerendo di farlo per cron
. Sembra un po 'eccessivo, a meno che tu non imposti e modifichi le attività su cron
molto spesso. Ho appena usato il tuo esempio per illustrare i due trucchi utili: controlli Sanity e preferendo la sintassi che rende gli errori molto evidenti anche se non li cerchi. L'idea è di assicurarsi che gli errori odorino .
Con la sintassi, le due cose ovvie che puoi fare sono:
- Seleziona strumenti e linguaggi con sintassi più resistente agli errori, ad esempio C # rispetto a Perl. Notate di nuovo il compromesso tra la cattura degli errori velocemente e il dover fare più lavoro.
- Avvolge la sintassi scadente con una sintassi migliore. Ad esempio, crea la tua funzione wrapper per le funzioni con un nome errato con nomi di argomenti ambigui, crea il tuo programma wrapper per strumenti arcani, usa un editor che supporta l'evidenziazione dei colori e così via.
Non ha senso fare tutto questo in ogni momento. Vuoi chiedertelo, cosa conta di più in un dato compito: la correttezza o il tuo tempo? È inutile contestare che l'hacking insieme a uno script veloce in Perl stia andando a ottenere il lavoro più velocemente della scrittura di un programma C # ben strutturato con una chiara gerarchia OOP. Se non sei preoccupato per gli errori e hai fretta, perché preoccuparsi? Ma tieni a mente che ogni volta che prendi questa scorciatoia, stai facendo una scommessa: scommetti molta frustrazione e digrignare i denti con la speranza che non dovrai tornare indietro ed estendere il tuo progetto nel lontano futuro, molto tempo dopo hai dimenticato come avrebbe dovuto funzionare (o che non ti rendessi conto a metà strada che il tuo design originale non funzionerà, e ora deve essere radicalmente modificato).