Che cosa dovrei fare
Sto lavorando su un'API, in cui ottengo un elenco di oggetti dall'output di una query SQL utilizzando un ORM. Ora questa chiamata API deve inviare le seguenti informazioni al client.
L'output è composto da un elenco e un dizionario. L'elenco contiene dizionari che contengono dati statistici al giorno. Un dizionario per ogni giorno.
Il dizionario contiene aggregati di tutti i dati statistici nello stesso periodo di tempo insieme a uno stato che indica quanto il valore è sceso o in aumento a seconda dell'aggregato dei precedenti N giorni precedenti agli attuali N giorni richiesti.
Implementazione corrente
Quindi, ho ricevuto una richiesta di dati per gli ultimi N giorni. Ho recuperato gli ultimi 2 giorni di dati dal database. In loop sul risultato e mentre preparavo i dati secondo l'API se i dati erano per gli ultimi N giorni. Mentre il ciclo era attivo, ho continuato a creare dati aggregati per i N giorni precedenti e N giorni correnti per il calcolo della modifica.
Una volta che il ciclo è finito, ho creato il dizionario con aggregato corrente e la modifica per stat.
Qual è il problema?
La funzione è troppo grande. Posso separare il processo in due funzioni, ma poi dovrò ripetere il ciclo dei dati. Come faccio a garantire che il codice appaia sano e refactored senza influire sulle prestazioni.