Thật thú vị, khả năng đọc như được áp dụng cho ngôn ngữ tự nhiên được đo bằng tốc độ đọc và hiểu. Tôi đoán một quy tắc đơn giản có thể thực sự được thông qua, nếu một nhận xét mã cụ thể không cải thiện thuộc tính này, nó có thể tránh được .
Tại sao ý kiến?
Mặc dù, nhận xét mã là một dạng tài liệu nhúng, có nhiều cách trong các ngôn ngữ lập trình cao cấp để tránh lập trình "thừa tài liệu" (mã có ý nghĩa) bằng cách sử dụng các yếu tố của chính ngôn ngữ. Cũng là một ý tưởng tồi khi biến mã thành danh sách từ sách giáo khoa lập trình, trong đó các câu lệnh riêng lẻ được giải thích theo nghĩa đen gần như theo kiểu tautological (nhớ ví dụ "/ * i tăng 1 * /" trong các câu trả lời đã được cung cấp), làm cho các nhận xét đó có liên quan chỉ để lập trình viên thiếu kinh nghiệm với ngôn ngữ.
Tuy nhiên, đó là ý định cố gắng bình luận mã "dưới tài liệu" (nhưng vô nghĩa) thực sự là "nguồn gốc của mọi tội lỗi". Chính sự tồn tại của mã "dưới tài liệu" là tín hiệu xấu - hoặc đó là một mớ hỗn độn không có cấu trúc, hoặc hack lập dị của mục đích bị mất bí ẩn. Rõ ràng, giá trị của mã như vậy ít nhất là nghi vấn. Thật không may, luôn có những ví dụ, khi thực sự tốt hơn là đưa một nhận xét vào một phần của các dòng mã được định dạng (được nhóm trực quan) hơn là bọc nó vào chương trình con mới (nhớ "tính nhất quán ngu ngốc" mà "là hobgoblin của những bộ óc nhỏ") .
Mã dễ đọc! = Nhận xét mã
Mã có thể đọc được không yêu cầu chú thích bằng bình luận. Ở mỗi vị trí cụ thể trong mã luôn có bối cảnh của một nhiệm vụ mà mã cụ thể này được cho là phải đạt được. Nếu mục đích bị thiếu và / hoặc mã làm điều gì đó bí ẩn = tránh nó bằng mọi giá. Không cho phép các bản hack lạ để điền mã của bạn - đó là kết quả trực tiếp của việc kết hợp các công nghệ lỗi với việc thiếu thời gian / sở thích để hiểu các nền tảng. Tránh mã bí ẩn trong dự án của bạn!
Mặt khác, chương trình Readable = code + tài liệu có thể chứa nhiều phần bình luận hợp pháp, ví dụ để tạo điều kiện cho việc tạo tài liệu "nhận xét cho API".
Thực hiện theo tiêu chuẩn kiểu mã
Thật buồn cười, câu hỏi không phải là lý do tại sao để bình luận mã, mà là về công việc nhóm - làm thế nào để sản xuất mã theo phong cách đồng bộ hóa cao (mà mọi người khác có thể đọc / hiểu). Bạn đang theo bất kỳ tiêu chuẩn phong cách mã trong công ty của bạn? Mục đích chính của nó là để tránh viết mã yêu cầu tái cấu trúc, quá "cá nhân" và "chủ quan" mơ hồ. Vì vậy, tôi đoán, nếu người ta thấy sự cần thiết trong việc sử dụng kiểu mã, thì có rất nhiều công cụ làm thế nào để thực hiện nó đúng cách - bắt đầu bằng việc giáo dục mọi người và kết thúc bằng tự động hóa để kiểm soát chất lượng mã (nhiều gợi ý, v.v.) và (sửa đổi kiểm soát tích hợp) hệ thống xem xét mã.
Trở thành một nhà truyền giáo dễ đọc mã
Nếu bạn đồng ý rằng mã được đọc thường xuyên hơn nó được viết. Nếu việc thể hiện rõ ràng ý tưởng và suy nghĩ rõ ràng là quan trọng đối với bạn, bất kể ngôn ngữ nào được sử dụng để giao tiếp (toán học, mã máy hoặc tiếng Anh cũ) .. Nếu nhiệm vụ của bạn là xóa bỏ lối suy nghĩ thay thế buồn tẻ và xấu xí .. (xin lỗi , cái cuối cùng là từ một "bảng kê khai" khác) .. đặt câu hỏi, bắt đầu thảo luận, bắt đầu truyền bá suy nghĩ kích thích sách về làm sạch mã (có lẽ không chỉ là thứ tương tự như mẫu thiết kế của Beck, mà giống như RC Martin đã đề cập ) trong lập trình. Hơn nữa đi qua một loạt các ý tưởng quan trọng (trích từ cuốn sách O'Reilly về khả năng đọc)
- Đơn giản hóa việc đặt tên, nhận xét và định dạng bằng các mẹo áp dụng cho mọi dòng mã
- Tinh chỉnh các vòng lặp, logic và các biến của chương trình để giảm độ phức tạp và nhầm lẫn
- Các vấn đề tấn công ở cấp độ chức năng, chẳng hạn như sắp xếp lại các khối mã để thực hiện một nhiệm vụ tại một thời điểm
- Viết mã kiểm tra hiệu quả, kỹ lưỡng và ngắn gọn cũng như dễ đọc
Cắt "bình luận" ra, người ta vẫn còn rất nhiều (tôi đoán viết mã không cần bình luận là một phần của bài tập tuyệt vời!). Đặt tên định danh có ý nghĩa về mặt ngữ nghĩa là một khởi đầu tốt. Tiếp theo, cấu trúc mã của bạn bằng cách nhóm các hoạt động được kết nối logic vào các hàm và lớp. Và như vậy. Một lập trình viên tốt hơn là một nhà văn tốt hơn (tất nhiên, giả sử các kỹ năng kỹ thuật khác được đưa ra).