Devo scrivere funzioni di convalida API in cui le regole possono diventare pelose e avere molti output in base al ramo preso.
Queste funzioni di convalida finiscono qua e là ad annidare molte condizioni IF (cerco di attenermi alla semplice condizione IF per semplicità), dove ho molti commenti per aiutare cosa sta succedendo, ma è un grosso spaghetto.
Inoltre, mentre convalido, faccio piccoli passi verso la costruzione dell'oggetto / risultato a cui sono interessato, quindi ho due problemi con questo codice:
-
È un enorme spaghetti con molti rami di uscita, che ... riflette la complicata situazione della vita reale.
-
La convalida e la costruzione dei risultati avvengono insieme, difficile separare la convalida separatamente, perché se fatto, allora finisco con questo albero complesso due volte, una volta in una funzione di convalida e un'altra per costruire il mio risultato.
Ci sono strategie / schemi per cercare questi scenari?
PS: sto usando Python nel caso in cui qualsiasi libreria o pattern aiuti con quello.