Tôi nghĩ rằng thực sự có hai điều cần giải quyết, và trên thực tế tôi sẽ xem xét chúng một cách riêng biệt bởi vì chúng không thể được tiếp cận theo cùng một cách, mặc dù tôi thấy cả hai đều quan trọng.
- Khía cạnh kỹ thuật: nhằm mục đích tránh mã rủi ro hoặc không đúng định dạng (ngay cả khi được trình biên dịch / trình thông dịch chấp nhận)
- Khía cạnh trình bày: liên quan đến chính nó làm cho chương trình rõ ràng với độc giả
Khía cạnh kỹ thuật tôi đủ điều kiện của Tiêu chuẩn mã hóa , cũng như Herb Sutter và Andrei Alexandrescu với Tiêu chuẩn mã hóa C ++ của họ . Bài thuyết trình tôi đủ điều kiện về Phong cách mã hóa , bao gồm quy ước đặt tên, thụt lề, v.v ...
Tiêu chuẩn mã hóa
Bởi vì nó hoàn toàn là kỹ thuật, Tiêu chuẩn mã hóa có thể chủ yếu là khách quan. Vì vậy, mọi quy tắc nên được hỗ trợ bởi một lý do. Trong cuốn sách tôi đã đề cập đến mỗi mục có:
- Một tiêu đề, đơn giản và cho điểm
- Một bản tóm tắt, giải thích tiêu đề
- Một cuộc thảo luận, trong đó minh họa vấn đề làm khác và do đó nêu lý do
- tùy chọn Một số ví dụ, bởi vì một ví dụ tốt có giá trị bằng một ngàn từ
- tùy chọn Một danh sách các trường hợp ngoại lệ mà quy tắc này không thể được áp dụng, đôi khi có xung quanh công việc
- Một danh sách các tài liệu tham khảo (sách khác, trang web) đã thảo luận về điểm này
Cơ sở lý luận và ngoại lệ là rất quan trọng, vì chúng tóm tắt lý do tại sao và khi nào.
Tiêu đề phải đủ rõ ràng để trong quá trình đánh giá, người ta chỉ cần có một danh sách các tiêu đề (bảng cheat) để làm việc. Và rõ ràng, nhóm các mục theo thể loại để dễ dàng tìm ra một mục.
Sutter và Alexandrescu quản lý để có một danh sách chỉ một trăm mặt hàng, mặc dù C ++ được coi là có lông;)
Kiểu mã hóa
Phần này nói chung là ít khách quan hơn (và có thể hoàn toàn chủ quan). Mục đích ở đây là để đảm bảo tính nhất quán, bởi vì điều này giúp người bảo trì và người mới đến.
Bạn không muốn tham gia vào một cuộc chiến tranh thần thánh về phong cách thụt đầu dòng hoặc niềng răng tốt hơn ở đây, có những diễn đàn cho việc này: vì vậy trong danh mục này bạn làm mọi việc bằng sự đồng thuận> bỏ phiếu đa số> quyết định tùy ý của nhà lãnh đạo.
Để biết ví dụ về định dạng, hãy xem danh sách các tùy chọn của Phong cách nghệ thuật . Lý tưởng nhất là các quy tắc phải rõ ràng và đầy đủ để một chương trình có thể viết lại mã (mặc dù không chắc là bạn sẽ không bao giờ viết mã;))
Đối với quy ước đặt tên, tôi sẽ cố gắng làm cho lớp / loại dễ dàng phân biệt với các biến / thuộc tính.
Cũng trong danh mục này, tôi phân loại các "biện pháp" như:
- thích các phương pháp ngắn đến dài: thường khó đồng ý về thời gian dài
- thích quay lại sớm / tiếp tục / nghỉ để giảm thụt đầu dòng
Linh tinh?
Và như là một từ cuối cùng, có một mục hiếm khi được thảo luận trong Tiêu chuẩn mã hóa, có lẽ vì nó đặc biệt đối với mỗi ứng dụng: tổ chức mã. Vấn đề kiến trúc có lẽ là vấn đề nổi bật nhất, làm hỏng thiết kế ban đầu và bạn sẽ bị ảnh hưởng bởi nó từ nhiều năm nay. Có lẽ bạn nên thêm một phần để xử lý tệp cơ bản: tiêu đề công khai / riêng tư, quản lý phụ thuộc, tách mối quan tâm, giao tiếp với các hệ thống hoặc thư viện khác ...
Nhưng đó không là gì nếu chúng không thực sự được áp dụng và thi hành .
Bất kỳ vi phạm nào sẽ được đưa ra trong quá trình đánh giá mã và không có đánh giá mã nào sẽ ổn nếu vi phạm là nổi bật:
- sửa mã để phù hợp với quy tắc
- sửa quy tắc để mã không còn nổi bật nữa
Rõ ràng, thay đổi một quy tắc có nghĩa là nhận được "đi trước" từ các nhà lãnh đạo.