Giải thích các biến
Trường hợp của bạn là một ví dụ về giới thiệu giải thích tái cấu trúc biến . Nói tóm lại, một biến giải thích là một biến không thực sự cần thiết, nhưng cho phép bạn đặt tên rõ ràng cho một cái gì đó, với mục đích tăng khả năng đọc.
Mã chất lượng tốt truyền đạt ý định đến người đọc; và như một nhà phát triển chuyên nghiệp khả năng đọc và bảo trì là mục tiêu số 1 của bạn.
Như vậy, quy tắc ngón tay cái tôi muốn giới thiệu là: nếu mục đích của tham số của bạn không rõ ràng ngay lập tức, hãy sử dụng một biến để đặt cho nó một cái tên hay. Tôi nghĩ rằng đây là một thực hành tốt nói chung (trừ khi lạm dụng). Đây là một ví dụ nhanh chóng, dễ hiểu - xem xét:
editButton.Enabled = (_grid.SelectedRow != null && ((Person)_grid.SelectedRow).Status == PersonStatus.Active);
so với hơi dài hơn, nhưng rõ ràng hơn:
bool personIsSelected = (_grid.SelectedRow != null);
bool selectedPersonIsEditable = (personIsSelected && ((Person)_grid.SelectedRow).Status == PersonStatus.Active)
editButton.Enabled = (personIsSelected && selectedPersonIsEditable);
Thông số Boolean
Ví dụ của bạn thực sự nêu bật lý do tại sao các booleans trong API thường là một ý tưởng tồi - về phía gọi, họ không làm gì để giải thích những gì đang xảy ra. Xem xét:
ParseFolder(true, false);
Bạn sẽ phải tìm hiểu ý nghĩa của các tham số đó; nếu chúng là enum, nó sẽ rõ ràng hơn nhiều:
ParseFolder(ParseBehaviour.Recursive, CompatibilityOption.Strict);
Biên tập:
Đã thêm các tiêu đề và hoán đổi thứ tự của hai đoạn chính, vì có quá nhiều người đang tập trung vào phần tham số boolean (công bằng mà nói, đó là đoạn đầu tiên ban đầu). Cũng đã thêm một ví dụ cho phần đầu tiên.