Je travaille actuellement sur un ensemble de rapports qui ont de nombreuses sections différentes (toutes nécessitant une mise en forme différente), et j'essaie de trouver la meilleure façon de structurer mon code. Des rapports similaires que nous avons réalisés dans le passé finissent par avoir de très grandes fonctions (200+ lignes) qui effectuent toutes les manipulations et le formatage des données pour le rapport, de sorte que le flux de travail ressemble à ceci:
DataTable reportTable = new DataTable();
void RunReport()
{
reportTable = DataClass.getReportData();
largeReportProcessingFunction();
outputReportToUser();
}
J'aimerais pouvoir diviser ces grandes fonctions en morceaux plus petits, mais je crains de ne finir par avoir des dizaines de fonctions non réutilisables, et une fonction similaire "tout faire ici" dont le seul travail consiste à appeler toutes ces petites fonctions, comme ceci:
void largeReportProcessingFunction()
{
processSection1HeaderData();
calculateSection1HeaderAverages();
formatSection1HeaderDisplay();
processSection1SummaryTableData();
calculateSection1SummaryTableTotalRow();
formatSection1SummaryTableDisplay();
processSection1FooterData();
getSection1FooterSummaryTotals();
formatSection1FooterDisplay();
processSection2HeaderData();
calculateSection1HeaderAverages();
formatSection1HeaderDisplay();
calculateSection1HeaderAverages();
...
}
Ou, si nous allons plus loin:
void largeReportProcessingFunction()
{
callAllSection1Functions();
callAllSection2Functions();
callAllSection3Functions();
...
}
Est-ce vraiment une meilleure solution? D'un point de vue organisationnel, je suppose que c'est le cas (c'est-à-dire que tout est beaucoup plus organisé qu'il ne le serait autrement), mais en ce qui concerne la lisibilité du code, je ne suis pas sûr (potentiellement de grandes chaînes de fonctions qui n'appellent que d'autres fonctions).
Pensées?