Al momento sto lavorando a una serie di rapporti che hanno molte sezioni diverse (tutte richiedono una formattazione diversa) e sto cercando di capire il modo migliore per strutturare il mio codice. Rapporti simili che abbiamo fatto in passato finiscono per avere funzioni molto grandi (oltre 200 righe) che fanno tutta la manipolazione e la formattazione dei dati per il report, in modo tale che il flusso di lavoro assomigli a questo:
DataTable reportTable = new DataTable();
void RunReport()
{
reportTable = DataClass.getReportData();
largeReportProcessingFunction();
outputReportToUser();
}
Mi piacerebbe essere in grado di suddividere queste grandi funzioni in blocchi più piccoli, ma temo che finirò per avere dozzine di funzioni non riusabili e una simile funzione "fai tutto qui", il cui unico lavoro è chiamare tutte queste funzioni più piccole, in questo modo:
void largeReportProcessingFunction()
{
processSection1HeaderData();
calculateSection1HeaderAverages();
formatSection1HeaderDisplay();
processSection1SummaryTableData();
calculateSection1SummaryTableTotalRow();
formatSection1SummaryTableDisplay();
processSection1FooterData();
getSection1FooterSummaryTotals();
formatSection1FooterDisplay();
processSection2HeaderData();
calculateSection1HeaderAverages();
formatSection1HeaderDisplay();
calculateSection1HeaderAverages();
...
}
Oppure, se facciamo un ulteriore passo avanti:
void largeReportProcessingFunction()
{
callAllSection1Functions();
callAllSection2Functions();
callAllSection3Functions();
...
}
Questa è davvero una soluzione migliore? Da un punto di vista organizzativo suppongo sia (cioè tutto è molto più organizzato di quanto potrebbe essere altrimenti), ma per quanto riguarda la leggibilità del codice non sono sicuro (potenzialmente grandi catene di funzioni che chiamano solo altre funzioni).
Pensieri?