Mam projekt, który jest wystarczająco duży, że nie mogę już dłużej zachować każdego aspektu w głowie. Mam do czynienia z wieloma klasami i funkcjami, a także przekazuję dane.
Z czasem zauważyłem, że ciągle pojawiają się błędy, ponieważ zapomniałem, jaką dokładną formę muszą mieć dane, gdy przekazuję je różnym funkcjom ( np. Jedna funkcja akceptuje i wyświetla tablicę ciągów, inna funkcja, którą napisałem znacznie później, akceptuje ciągi przechowywane w słowniku itp., więc muszę przekształcić ciągi, z którymi pracuję, od umieszczenia ich w tablicy do umieszczenia ich w słowniku ).
Aby uniknąć konieczności ciągłego ustalania, co się zepsuło, zacząłem traktować każdą funkcję i klasę jako „izolowany byt” w tym sensie, że nie może polegać na kodzie zewnętrznym, podając poprawne dane wejściowe i musi sam sprawdzać dane wejściowe (lub, w niektórych przypadkach przekształć dane, jeśli dane są podane w niewłaściwej formie).
To znacznie skróciło czas, jaki spędzam, upewniając się, że przekazywane przeze mnie dane „pasują” do każdej funkcji, ponieważ same klasy i funkcje ostrzegają mnie teraz, gdy niektóre dane wejściowe są złe (a czasem nawet poprawiają to), a ja nie muszę już przejść z debuggerem przez cały kod, aby dowiedzieć się, gdzie coś poszło nie tak.
Z drugiej strony zwiększyło to również ogólny kod.
Moje pytanie brzmi, czy ten styl kodu jest odpowiedni do rozwiązania tego problemu?
Oczywiście najlepszym rozwiązaniem byłoby całkowite przefakturowanie projektu i upewnienie się, że dane mają jednolitą strukturę dla wszystkich funkcji - ale ponieważ ten projekt stale się rozwija, musiałbym więcej wydawać i martwić się czystym kodem niż dodawać nowe rzeczy .
(FYI: Nadal jestem początkującym, więc przepraszam, jeśli to pytanie było naiwne; mój projekt jest w Pythonie).