J'ai un projet suffisamment grand pour que je ne puisse plus garder tous les aspects en tête. Je traite avec un certain nombre de classes et de fonctions, et je transmets des données.
Avec le temps, j'ai remarqué que je continuais à recevoir des erreurs, car j'avais oublié la forme précise que les données devaient avoir lorsque je les transmettais à différentes fonctions ( par exemple, une fonction accepte et génère un tableau de chaînes, une autre fonction, que j'ai écrite beaucoup plus tard, accepte les chaînes qui sont conservées dans un dictionnaire, etc., donc je dois transformer les chaînes avec lesquelles je travaille, de les avoir dans un tableau à les avoir dans un dictionnaire ).
Pour éviter d'avoir toujours à comprendre ce qui s'est cassé où, j'ai commencé à traiter chaque fonction et classe comme étant une "entité isolée" dans le sens où elle ne peut pas s'appuyer sur du code extérieur lui donnant la bonne entrée et doit effectuer elle-même des vérifications d'entrée (ou, dans certains cas, refonte des données, si les données sont fournies sous une forme incorrecte).
Cela a considérablement réduit le temps que je passe à m'assurer que les données que je transmets "tiennent" dans chaque fonction, car les classes et les fonctions elles-mêmes m'avertissent désormais lorsqu'une entrée est mauvaise (et parfois même corrige cela) et je ne le fais pas avoir à aller avec un débogueur à travers le code entier pour comprendre où quelque chose s'est détraqué.
D'un autre côté, cela a également augmenté le code global.
Ma question est, si ce style de code est approprié pour résoudre ce problème?
Bien sûr, la meilleure solution serait de refactoriser complètement le projet et de s'assurer que les données ont une structure uniforme pour toutes les fonctions - mais comme ce projet est en croissance constante, je finirais par dépenser plus et m'inquiéter du code propre que d'ajouter réellement de nouvelles choses .
(FYI: Je suis toujours un débutant, alors veuillez excuser si cette question était naïve; mon projet est en Python.)