Tôi nghe nhiều về việc giữ các phương thức ngắn và tôi đã nghe nhiều lập trình viên nói rằng sử dụng thẻ #region trong một phương thức là một dấu hiệu chắc chắn rằng nó quá dài và nên được tái cấu trúc thành nhiều phương thức. Tuy nhiên, dường như có nhiều trường hợp trong đó tách mã bằng các thẻ #region trong một phương thức là giải pháp ưu việt để tái cấu trúc thành nhiều phương thức.
Giả sử chúng ta có một phương pháp mà tính toán có thể được tách thành ba giai đoạn khá khác biệt. Hơn nữa, mỗi giai đoạn này chỉ liên quan đến tính toán cho phương pháp này và do đó việc trích xuất chúng vào các phương thức mới giúp chúng tôi không sử dụng lại mã. Vậy thì, lợi ích của việc trích xuất từng giai đoạn thành phương pháp riêng của nó là gì? Theo như tôi có thể nói, tất cả những gì chúng ta đạt được là một số khả năng đọc và phạm vi biến riêng biệt cho từng giai đoạn (sẽ giúp ngăn sửa đổi một giai đoạn cụ thể khỏi vô tình phá vỡ một giai đoạn khác).
Tuy nhiên, cả hai điều này có thể đạt được mà không cần trích xuất từng pha thành phương pháp riêng. Thẻ vùng cho phép chúng tôi thu gọn mã thành một dạng có thể đọc được (với lợi ích bổ sung mà chúng tôi không còn phải rời khỏi vị trí của mình trong tệp này nếu chúng tôi quyết định mở rộng và kiểm tra mã), và chỉ cần bọc từng giai đoạn trong {}
tạo phạm vi riêng để làm việc với.
Lợi ích của việc thực hiện theo cách này là chúng ta không làm ô nhiễm phạm vi cấp lớp với ba phương thức thực sự chỉ liên quan đến hoạt động bên trong của phương thức thứ tư. Ngay lập tức tái cấu trúc một phương thức dài thành một loạt các phương thức ngắn dường như là việc sử dụng lại mã tương đương với tối ưu hóa sớm; bạn đang giới thiệu thêm sự phức tạp để giải quyết một vấn đề mà trong nhiều trường hợp không bao giờ phát sinh. Bạn luôn có thể trích xuất một trong các giai đoạn thành phương thức riêng của mình sau này nếu có cơ hội tái sử dụng mã.
Suy nghĩ?
#region
các thẻ, tôi còn tắt hoàn toàn mã trong Visual Studio. Tôi không thích mã cố gắng giấu tôi.