Ho sviluppato software negli ultimi tre anni, ma mi sono appena svegliato da quanto sono ignorante sulle buone pratiche. Questo mi ha portato a iniziare a leggere il libro Clean Code , che sta migliorando la mia vita in meglio, ma sto cercando di capire da vicino alcuni dei migliori approcci per scrivere i miei programmi.
Ho un programma Python in cui io ...
- usa argparse
required=True
per imporre due argomenti, che sono entrambi i nomi dei file. il primo è il nome del file di input, il secondo è il nome del file di output - ha una funzione
readFromInputFile
che prima controlla che sia stato inserito un nome di file di input - ha una funzione
writeToOutputFile
che prima controlla che sia stato inserito un nome di file di output
Il mio programma è abbastanza piccolo da indurmi a credere che il check-in n. 2 e n. 3 sia ridondante e debba essere rimosso, liberando entrambe le funzioni da una condizione if
non necessaria. Tuttavia, sono stato anche portato a credere che "il doppio controllo sia ok" e potrebbe essere la soluzione giusta in un programma in cui le funzioni potrebbero essere chiamate da una posizione diversa in cui non si verifica l'analisi degli argomenti.
(Inoltre, se la lettura o la scrittura falliscono, ho un try except
in ogni funzione per generare un messaggio di errore appropriato.)
La mia domanda è: è meglio evitare tutti i controlli delle condizioni ridondanti? La logica di un programma dovrebbe essere così solida che i controlli devono essere fatti una sola volta? Ci sono dei buoni esempi che illustrano questo o il contrario?
EDIT: Grazie a tutti per le risposte! Ho imparato qualcosa da ciascuno. Vedere così tante prospettive mi dà una migliore comprensione di come affrontare questo problema e determinare una soluzione in base alle mie esigenze. Grazie!