Ich habe ein Projekt, das so groß ist, dass ich nicht mehr jeden Aspekt im Kopf behalten kann. Ich beschäftige mich mit einer Reihe von Klassen und Funktionen darin und gebe Daten weiter.
Mit der Zeit bemerkte ich, dass ich immer wieder Fehler bekam, weil ich vergaß, welche genaue Form die Daten haben müssen, wenn ich sie an verschiedene Funktionen übergebe ( z. B. eine Funktion akzeptiert und gibt ein Array von Zeichenfolgen aus, eine andere Funktion, die ich viel später geschrieben habe). Akzeptiert Zeichenfolgen, die in einem Wörterbuch usw. gespeichert sind. Daher muss ich die Zeichenfolgen, mit denen ich arbeite, von einem Array in ein Wörterbuch umwandeln .
Um nicht immer herausfinden zu müssen, was wo kaputt gegangen ist, habe ich begonnen, jede Funktion und Klasse als "isolierte Entität" in dem Sinne zu behandeln, dass sie sich nicht darauf verlassen kann, dass externer Code die richtige Eingabe liefert, und dass sie selbst Eingabeprüfungen durchführen muss (oder) In einigen Fällen müssen die Daten neu gefasst werden, wenn die Daten in der falschen Form angegeben wurden.
Dies hat die Zeit, die ich damit verbringe, sicherzustellen, dass die Daten, die ich weitergebe, in jede Funktion "passen", erheblich reduziert, da mich die Klassen und Funktionen selbst jetzt warnen, wenn einige Eingaben schlecht sind (und dies manchmal sogar korrigieren), und ich nicht Ich muss mit einem Debugger den gesamten Code durchgehen, um herauszufinden, wo etwas durcheinander geraten ist.
Andererseits hat dies auch den Gesamtcode erhöht.
Meine Frage ist, ob dieser Codestil zur Lösung dieses Problems geeignet ist.
Die beste Lösung wäre natürlich, das Projekt komplett umzugestalten und sicherzustellen, dass die Daten für alle Funktionen eine einheitliche Struktur haben. Da dieses Projekt jedoch ständig wächst, würde ich am Ende mehr Geld ausgeben und mir Sorgen um sauberen Code machen, als tatsächlich neues Material hinzuzufügen .
(Zu Ihrer Information: Ich bin noch ein Anfänger. Bitte entschuldigen Sie, wenn diese Frage naiv war. Mein Projekt ist in Python.)