Tengo un proyecto que es lo suficientemente grande como para no poder mantener todos los aspectos en mi cabeza. Estoy tratando con una serie de clases y funciones, y estoy pasando datos.
Con el tiempo, noté que seguía recibiendo errores, porque olvidé qué forma precisa deben tener los datos cuando los paso a diferentes funciones ( por ejemplo, una función acepta y genera una matriz de cadenas, otra función, que escribí mucho más tarde, acepta cadenas que se guardan en un diccionario, etc., por lo que tengo que transformar las cadenas con las que estoy trabajando para tenerlas en una matriz y tenerlas en un diccionario ).
Para evitar tener que averiguar siempre qué es lo que se rompió, comencé a tratar cada función y clase como una "entidad aislada" en el sentido de que no puede confiar en que el código externo le dé la entrada correcta y tiene que realizar comprobaciones de entrada por sí mismo (o, en algunos casos, refundir los datos, si los datos se dan en forma incorrecta).
Esto ha reducido en gran medida el tiempo que paso asegurándome de que los datos que paso "encajen" en cada función, porque las clases y las funciones mismas ahora me advierten cuando alguna entrada es mala (y algunas veces incluso corrige eso) y no lo hago. tengo que ir con un depurador a través de todo el código para descubrir dónde algo se volvió loco.
Por otro lado, esto también ha aumentado el código general.
Mi pregunta es, si este estilo de código es apropiado para resolver este problema?
Por supuesto, la mejor solución sería refactorizar completamente el proyecto y asegurarse de que los datos tengan una estructura uniforme para todas las funciones, pero dado que este proyecto está creciendo constantemente, terminaría gastando más y preocupándome por un código limpio en lugar de agregar cosas nuevas. .
(FYI: todavía soy un principiante, así que disculpe si esta pregunta fue ingenua; mi proyecto está en Python).