Ho un progetto di dimensioni sufficientemente grandi che non riesco più a mantenere ogni aspetto nella mia testa. Ho a che fare con un certo numero di classi e funzioni e sto passando i dati.
Con il tempo ho notato che continuavo a ricevere errori, perché ho dimenticato quale forma precisa i dati devono avere quando li passo a funzioni diverse ( ad esempio, una funzione accetta e genera una serie di stringhe, un'altra funzione, che ho scritto molto più tardi, accetta stringhe che sono conservate in un dizionario ecc., quindi devo trasformare le stringhe con cui sto lavorando da averle in un array per averli in un dizionario ).
Per evitare di dover sempre capire cosa ha rotto dove, ho iniziato a trattare ogni funzione e classe come una "entità isolata" nel senso che non può fare affidamento su codice esterno dandogli l'input corretto e deve eseguire controlli di input (o, in alcuni casi, rifare i dati, se i dati sono dati nella forma sbagliata).
Ciò ha notevolmente ridotto il tempo che trascorro facendo in modo che i dati che ho trasmesso vadano "adattati" a tutte le funzioni, perché le classi e le funzioni stesse ora mi avvertono quando alcuni input sono errati (e talvolta anche corretto) e io non devi più utilizzare un debugger attraverso l'intero codice per capire dove qualcosa è andato in tilt.
D'altra parte questo ha anche aumentato il codice complessivo.
La mia domanda è, se questo stile di codice è appropriato per risolvere questo problema?
Naturalmente, il migliore la soluzione sarebbe quella di ridefinire completamente il progetto e assicurarsi che i dati abbiano una struttura uniforme per tutte le funzioni, ma dal momento che questo progetto è in costante crescita, finirei a spendere di più e mi preoccupo del codice pulito che aggiungere nuove cose.
(FYI: Sono ancora un principiante, quindi scusami se questa domanda è ingenua, il mio progetto è in Python.)