Momentan arbeite ich an einer Reihe von Berichten mit vielen verschiedenen Abschnitten (die alle unterschiedliche Formatierungen erfordern) und ich versuche herauszufinden, wie ich meinen Code am besten strukturieren kann. Ähnliche Berichte, die wir in der Vergangenheit erstellt haben, haben sehr große Funktionen (über 200 Zeilen), mit denen alle Daten für den Bericht bearbeitet und formatiert werden, sodass der Workflow ungefähr so aussieht:
DataTable reportTable = new DataTable();
void RunReport()
{
reportTable = DataClass.getReportData();
largeReportProcessingFunction();
outputReportToUser();
}
Ich möchte in der Lage sein, diese großen Funktionen in kleinere Teile aufzuteilen, aber ich befürchte, dass ich am Ende Dutzende nicht wiederverwendbarer Funktionen und eine ähnliche Funktion "Alles hier machen" habe, deren einzige Aufgabe darin besteht, zu arbeiten Rufen Sie alle diese kleineren Funktionen folgendermaßen auf:
void largeReportProcessingFunction()
{
processSection1HeaderData();
calculateSection1HeaderAverages();
formatSection1HeaderDisplay();
processSection1SummaryTableData();
calculateSection1SummaryTableTotalRow();
formatSection1SummaryTableDisplay();
processSection1FooterData();
getSection1FooterSummaryTotals();
formatSection1FooterDisplay();
processSection2HeaderData();
calculateSection1HeaderAverages();
formatSection1HeaderDisplay();
calculateSection1HeaderAverages();
...
}
Oder wenn wir noch einen Schritt weiter gehen:
void largeReportProcessingFunction()
{
callAllSection1Functions();
callAllSection2Functions();
callAllSection3Functions();
...
}
Ist das wirklich eine bessere Lösung? Aus organisatorischer Sicht denke ich, dass dies der Fall ist (dh, dass alles viel besser organisiert ist als sonst), aber was die Lesbarkeit des Codes anbelangt, bin ich mir nicht sicher (potenziell große Funktionsketten, die nur andere Funktionen aufrufen).
Gedanken?