Je développe des logiciels depuis trois ans, mais je me suis récemment réveillé à quel point je suis ignorant des bonnes pratiques. Cela m'a amené à commencer à lire le livre Clean Code , qui bouleverse ma vie pour le mieux, mais j'ai du mal à obtenir un aperçu de certaines des meilleures approches pour écrire mes programmes.
J'ai un programme Python dans lequel je ...
- utilisez argparse
required=True
pour appliquer deux arguments, qui sont tous deux des noms de fichiers. le premier est le nom du fichier d'entrée, le second est le nom du fichier de sortie - avoir une fonction
readFromInputFile
qui vérifie d'abord qu'un nom de fichier d'entrée a été entré - avoir une fonction
writeToOutputFile
qui vérifie d'abord qu'un nom de fichier de sortie a été entré
Mon programme est suffisamment petit pour que je puisse croire que les vérifications # 2 et # 3 sont redondantes et doivent être supprimées, libérant ainsi les deux fonctions d'une if
condition inutile . Cependant, j'ai également été amené à croire que "la double vérification est ok" et peut être la bonne solution dans un programme où les fonctions pourraient être appelées à partir d'un emplacement différent où l'analyse des arguments ne se produit pas.
(De plus, si la lecture ou l'écriture échoue, j'ai un try except
dans chaque fonction pour déclencher un message d'erreur approprié.)
Ma question est: est-il préférable d'éviter toute vérification de condition redondante? La logique d'un programme doit-elle être si solide que les vérifications ne doivent être effectuées qu'une seule fois? Y a-t-il de bons exemples qui illustrent cela ou l'inverse?
EDIT: Merci à tous pour les réponses! J'ai appris quelque chose de chacun. Voir autant de perspectives me permet de mieux comprendre comment aborder ce problème et déterminer une solution en fonction de mes besoins. Je vous remercie!