Ho sviluppato software negli ultimi tre anni, ma mi sono appena svegliato di recente con la mia ignoranza riguardo alle buone pratiche. Questo mi ha portato a iniziare a leggere il libro Clean Code , che sta cambiando la mia vita in meglio, ma sto lottando per ottenere informazioni su alcuni dei migliori approcci per la scrittura dei miei programmi.
Ho un programma Python in cui ...
- usa argparse
required=True
per imporre due argomenti, che sono entrambi nomi di file. il primo è il nome del file di input, il secondo è il nome del file di output - avere una funzione
readFromInputFile
che controlla per prima cosa che sia stato inserito un nome per il file di input - avere una funzione
writeToOutputFile
che controlla per prima cosa che sia stato inserito un nome per il file di output
Il mio programma è abbastanza piccolo da essere portato a credere che il check in # 2 e # 3 sia ridondante e debba essere rimosso, liberando così entrambe le funzioni da una if
condizione non necessaria . Tuttavia, sono stato anche indotto a credere che "il doppio controllo è corretto" 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 una try except
funzione per ciascuna per sollevare 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 solo una 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 comprensione molto migliore di come affrontare questo problema e determinare una soluzione in base alle mie esigenze. Grazie!