Code chuẩn - Chuẩn code (Phần 1)

Đã bao giờ bạn tự đặt câu hỏi cho mình rằng: "Chuẩn Code là gì? Làm thế nào để code chuẩn?" chưa?
Bài post này tôi xin giới thiệu với các bạn về Chuẩn Code (Coding Standard) và PSR-1: Basic Coding Standard
Coding Standard (Chuẩn Code) là gì?
Chuẩn code là một tập hợp các nguyên tắc code (Coding Rules) được đóng góp và chấp nhận bởi cộng đồng coder trên toàn thế giới.
Tại sao phải tuân thủ theo chuẩn code
Tuân thủ chuẩn code giúp cho code của chúng ta được sạch đẹp, dễ đọc và dễ hiểu.
Có nhiều người đặt câu hỏi: "Dễ đọc, dễ hiểu để làm gì? Tôi code tôi hiểu là được rồi, ngoài tôi ra thì cần quái gì ai hiểu cho mệt". Nghe thì có lý, nhưng đấy là lý luận cùn thôi.
Đầu tiên, khi xảy ra bug thì bạn chính là người phải tìm bug trong đống hổ lốn code mà bạn đã viết. Người tiếp theo ăn đạn, chính là thằng maintain cái chức năng liên quan đến cái đống code đấy - nếu thằng đó là bạn thì ngon rồi, vì bạn hiểu đống code đấy mà.
Thôi không dài dòng văn tự, bạn có thể chọn 1 trong 2 trường phái sau để trở thành pro coder:
Lai dít

Hay lai dát

PSR-1: Basic Coding Standard (Chuẩn 1)
- Các files PHẢI sử dụng các thẻ <?php và <?=
- Các files PHẢI sử dụng UTF-8 không có BOM (Byte Order Mark) cho code PHP
- Các files NÊN chứa các khai báo (Class, function, constants,...) hoặc cause side-effects (generate output, thay đổi cài đặt .ini,...) mà KHÔNG NÊN chứa cả hai
- Các namespaces và classes PHẢI tuân theo chuẩn "autoloading" PSR: [PSR-0, PSR-4]
- Các tên lớp PHẢI được viết hoa các chữ cái đầu tiên của các từ (PascalCase)
- Các hằng số PHẢI được viết hoa tất cả các chữ cái và giữa các từ cách nhau bởi dấu gạch dưới (_)
- Tên các phương thức PHẢI viết thường chữ cái đầu tiên của từ đầu tiên và viết hoa chữ cái đầu tiên của các từ tiếp theo (camelCase)
Ghi chú: Cụm từ "side-effects" có nghĩa là thực thi logic mà không liên quan trực tiếp đến lớp, hàm, hằng,... hay chỉ đơn giản là include 1 file khác vào file hiện tại.
Bài viết này chỉ khái quát giúp bạn đọc biết sơ qua về Chuẩn code PSR-1. Để biết thêm chi tiết mời các bạn tham khảo link sau: https://www.php-fig.org/psr/psr-1 (Nội dung của bài cũng có tham khảo link này)
Hẹn gặp lại các bạn ở các phần tiếp theo
Have a nice day!!!