Tôi hiểu tầm quan trọng của mã tài liệu tốt. Nhưng tôi cũng hiểu tầm quan trọng của mã tự viết tài liệu . Càng dễ đọc trực quan một chức năng cụ thể, chúng ta càng có thể di chuyển nhanh hơn trong quá trình bảo trì phần mềm.
Như đã nói, tôi thích tách các chức năng lớn thành các chức năng nhỏ khác. Nhưng tôi làm như vậy đến mức một lớp có thể có tới năm trong số chúng chỉ để phục vụ một phương thức công khai. Bây giờ nhân năm phương thức riêng tư với năm phương thức công khai và bạn có được khoảng hai mươi lăm phương thức ẩn có thể sẽ chỉ được gọi một lần bởi những phương thức công khai đó.
Chắc chắn, giờ đây việc đọc các phương thức công khai đó trở nên dễ dàng hơn, nhưng tôi không thể không nghĩ rằng có quá nhiều chức năng là thực tiễn tồi.
[Biên tập]
Mọi người đã hỏi tôi tại sao tôi nghĩ rằng có quá nhiều chức năng là thực hành tồi.
Câu trả lời đơn giản: đó là một cảm giác ruột.
Tôi tin rằng, không một chút nào, được hỗ trợ bởi bất kỳ giờ kinh nghiệm kỹ thuật phần mềm nào. Đó chỉ là một sự không chắc chắn đã cho tôi một "khối nhà văn", nhưng đối với một lập trình viên.
Trước đây, tôi chỉ lập trình các dự án cá nhân. Gần đây tôi đã chuyển sang các dự án dựa trên nhóm. Bây giờ, tôi muốn đảm bảo rằng những người khác có thể đọc và hiểu mã của tôi.
Tôi không chắc những gì sẽ cải thiện mức độ dễ đọc. Một mặt, tôi đã nghĩ đến việc tách một chức năng lớn thành các chức năng nhỏ khác với các tên dễ hiểu. Nhưng có một mặt khác của tôi nói rằng nó chỉ là dư thừa.
Vì vậy, tôi đang yêu cầu điều này soi sáng bản thân để chọn đúng con đường.
[Biên tập]
Dưới đây, tôi bao gồm hai phiên bản về cách tôi có thể giải quyết vấn đề của mình. Cái đầu tiên giải quyết nó bằng cách không tách các đoạn mã lớn. Cái thứ hai làm những việc riêng biệt.
Phiên bản đầu tiên:
public static int Main()
{
// Displays the menu.
Console.WriteLine("Pick your option");
Console.Writeline("[1] Input and display a polynomial");
Console.WriteLine("[2] Add two polynomials");
Console.WriteLine("[3] Subtract two polynomials");
Console.WriteLine("[4] Differentiate two polynomials");
Console.WriteLine("[0] Quit");
}
Phiên bản thứ hai:
public static int Main()
{
DisplayMenu();
}
private static void DisplayMenu()
{
Console.WriteLine("Pick your option");
Console.Writeline("[1] Input and display a polynomial");
Console.WriteLine("[2] Add two polynomials");
Console.WriteLine("[3] Subtract two polynomials");
Console.WriteLine("[4] Differentiate two polynomials");
Console.WriteLine("[0] Quit");
}
Trong các ví dụ trên, hàm sau gọi một hàm sẽ chỉ được sử dụng một lần trong toàn bộ thời gian chạy của chương trình.
Lưu ý: mã ở trên được khái quát hóa, nhưng nó có cùng bản chất với vấn đề của tôi.
Bây giờ, đây là câu hỏi của tôi: cái nào? Tôi chọn cái đầu tiên, hay cái thứ hai?