ขณะนี้ฉันกำลังทำงานกับชุดรายงานที่มีหลายส่วน (ทั้งหมดต้องมีการจัดรูปแบบที่แตกต่างกัน) และฉันกำลังพยายามหาวิธีที่ดีที่สุดในการจัดโครงสร้างโค้ดของฉัน รายงานที่คล้ายกันที่เราได้ทำในตอนท้ายที่ผ่านมามีฟังก์ชั่นที่มีขนาดใหญ่มาก (200+ บรรทัด) ที่ทำการจัดการข้อมูลและการจัดรูปแบบสำหรับรายงานทั้งหมดดังนั้นเวิร์กโฟลว์จะมีลักษณะดังนี้:
DataTable reportTable = new DataTable();
void RunReport()
{
reportTable = DataClass.getReportData();
largeReportProcessingFunction();
outputReportToUser();
}
ฉันต้องการที่จะสามารถแบ่งฟังก์ชั่นขนาดใหญ่เหล่านี้ออกเป็นชิ้นเล็ก ๆ แต่ฉันกลัวว่าฉันจะจบลงด้วยฟังก์ชั่นที่ไม่สามารถนำมาใช้ซ้ำได้หลายสิบและฟังก์ชั่น "ทำทุกอย่างที่นี่" ที่คล้ายกัน เรียกใช้ฟังก์ชั่นเล็ก ๆ เหล่านี้ได้เช่น:
void largeReportProcessingFunction()
{
processSection1HeaderData();
calculateSection1HeaderAverages();
formatSection1HeaderDisplay();
processSection1SummaryTableData();
calculateSection1SummaryTableTotalRow();
formatSection1SummaryTableDisplay();
processSection1FooterData();
getSection1FooterSummaryTotals();
formatSection1FooterDisplay();
processSection2HeaderData();
calculateSection1HeaderAverages();
formatSection1HeaderDisplay();
calculateSection1HeaderAverages();
...
}
หรือถ้าเราไปอีกขั้นหนึ่ง:
void largeReportProcessingFunction()
{
callAllSection1Functions();
callAllSection2Functions();
callAllSection3Functions();
...
}
นี่เป็นทางออกที่ดีกว่าจริง ๆ หรือ จากมุมมองขององค์กรฉันคิดว่ามันคือ (ทุกอย่างมีการจัดระเบียบมากเกินกว่าที่ควรจะเป็น) แต่เท่าที่ความสามารถในการอ่านรหัสฉันไม่แน่ใจ (กลุ่มของฟังก์ชั่นขนาดใหญ่ที่เรียกฟังก์ชันอื่นเท่านั้น)
คิด?