Vì nhiều lý do trong quá trình phát triển, đôi khi tôi nhận xét ra mã. Khi tôi hỗn loạn và đôi khi vội vàng, một số trong số này làm cho nó kiểm soát nguồn.
Tôi cũng sử dụng ý kiến để làm rõ các khối mã.
Ví dụ:
MyClass MyFunction()
{
(...)
// return null; // TODO: dummy for now
return obj;
}
Mặc dù nó "hoạt động" và rất nhiều người làm theo cách này, điều đó làm tôi khó chịu khi bạn không thể tự động phân biệt mã nhận xét với các nhận xét "thực" làm rõ mã:
- nó thêm tiếng ồn khi cố đọc mã
- bạn không thể tìm kiếm mã nhận xét, ví dụ như một móc nối cam kết trong kiểm soát nguồn.
Một số ngôn ngữ hỗ trợ nhiều kiểu nhận xét một dòng - ví dụ: trong PHP bạn có thể sử dụng //
hoặc #
cho một nhận xét một dòng - và các nhà phát triển có thể đồng ý sử dụng một trong các kiểu này cho mã nhận xét:
# return null; // TODO: dummy for now
return obj;
Các ngôn ngữ khác - như C # mà tôi đang sử dụng ngày nay - có một kiểu cho nhận xét một dòng (đúng không? Tôi ước mình sai). Tôi cũng đã thấy các ví dụ về mã "bình luận" bằng cách sử dụng các lệnh của trình biên dịch, rất phù hợp với các khối mã lớn, nhưng hơi quá mức đối với các dòng đơn vì hai dòng mới được yêu cầu cho lệnh này:
#if compile_commented_out
return null; // TODO: dummy for now
#endif
return obj;
Vì vậy, khi mã nhận xét xảy ra trong mọi ngôn ngữ (?), Không nên "mã bị vô hiệu hóa" có được cú pháp riêng trong thông số ngôn ngữ không? Các pro (phân tách bình luận / mã bị vô hiệu hóa, trình soạn thảo / kiểm soát nguồn hoạt động trên chúng) có đủ tốt không và nhược điểm ("dù sao cũng không nên bình luận", không phải là một phần chức năng của ngôn ngữ, độ trễ IDE tiềm năng (cảm ơn Thomas )) đáng để hy sinh?
Biên tập
Tôi nhận ra ví dụ tôi sử dụng là ngớ ngẩn; mã giả có thể dễ dàng được gỡ bỏ vì nó được thay thế bằng mã thực tế.
/# ... #/
đó sẽ làm nổi bật khác trong IDE (đối với tín hiệu thị giác) và có thể tạo ra một trình biên dịch cảnh báo rằng sau đó sẽ bị mắc kẹt và báo cáo bằng việc xây dựng hàng đêm nếu ai đó không kiểm tra những thay đổi đó trở lại vào kiểm soát nguồn.