Coding convention là một thuật ngữ mà có lẽ bất kể các lập trình viên nào cũng từng nghe nói đến. Mặc dù trên thực tế thì việc tuân thủ theo coding convention hay việc không ảnh hưởng đến các kết quả của công việc là một điều khó.
Việc các hàm vẫn chạy, code vẫn thực thi đúng theo yêu cầu và sản phẩm sẽ không có gì khác biệt. Vậy coding convention là gì? Hãy cùng trung tâm testerpro tìm hiểu về coding convention qua bài viết dưới đây.
Coding convention là gì?
Bạn là người mới bắt đầu làm quen với công việc lập trình, viết code hay đơn giản là bạn đang tìm hiểu và muốn tự phát triển phần mềm riêng cho mình. Vậy bạn biết quy tắc chung để phát triển nên chúng là gì chưa? Đây chính là cơ sở nền tảng ra đời của Coding convention.
Vậy bạn đã biết Code Convention là gì chưa?
Coding convention là một tập hợp các quy tắc chung đối với các lập trình nhằm giúp đạt được việc code dễ đọc, dễ hiểu để từ đó giúp cho việc quản lý dễ dàng và bảo trì nhanh chóng, thuận tiện hơn. Hiểu một cách đơn giản hơn nó là những quy ước giúp việc viết code được hoàn thiện và nhanh chóng hơn.
Bên cạnh đó nó cũng bao gồm các nội dung có liên quan tới quy ước về phong cách code, cách đặt tên biến, tên file, tên hàm, …để giúp các lập trình viên tuân theo.
Nó giúp bạn rất nhiều trong khi làm việc nhóm, cũng như trong khi làm việc với hệ thống lớn, được thiết kế cũng như bảo trì rất nhiều giai đoạn với các nguồn nhân lực khác nhau thì việc tuân thủ coding convention là vô cùng quan trọng giúp cho những lập trình viên đọc code.
Ngoài ra, nó còn giúp tiết kiệm được thời gian khi đọc code có các quy ước đặt tên rõ ràng hơn, cũng như việc giúp cho những người code sau trong việc bảo trì và phát triển hệ thống.
Đặc biệt Code Convention đóng vai trò quyết định tạo nên sự thành công của dự án phần mềm, vì thế chúng là nền tảng bắt buộc các lập trình viên phỉa tuân theo.
Hơn thế nữa, bạn cũng có thể giao tiếp và hiệu được ý tưởng của các thành viên trong dự án nhờ vào bộ quy tắc chung của Code Convention. Thêm vào đó giúp cho việc bảo trì hệ thống được diễn ra với tốc độ nhanh hơn và quá trình thêm các module chức năng vào dự án phần mềm thực hiện đơn giản hơn.
Các định danh như các hằng, biến, lớp, đối tượng, phương thức,… nên được đặt bằng tiếng anh đúng chính tả và có nghĩa.
Xem thêm >>> Solution architect là gì? Vai trò, tầm quan trọng, kỹ năng cần thiết
Tại sao nên sử dụng Coding convention?
Thực tế, dựa vào khảo sát trong các doanh nghiệp cho thấy, để hoàn thành dự án phần mềm sẽ phải nhờ vào sự hỗ trợ của nhiều thành viên và mỗi thành viên sẽ đảm nhận giai đoạn và phải hoàn thành công việc khác nhau.
Vậy nên mỗi thành viên sẽ có cách viết khác nhau, để hiểu được cách viết và ý tưởng đó là điều rất khó khăn. Bạn sẽ thường xuyên gặp các câu hỏi với nội dung như nhau ví dụ như “Chỗ này mình chưa hiểu”, “Sao lại viết như này”……
Do đó, trong trường hợp này bạn nên sử dụng Coding Convention không chỉ khắc phục được vấn đề trên mà nó còn giúp:
- Quá trình là việc nhóm theo dự án trở nên nhanh chóng và đạt được hiệu quả cao hơn.
- Khi làm việc dựa trên quy tắc, khuôn mẫu nhất định sẽ tạo nên đồng bộ chung.
- Cấu trúc code bạn viết có thể truyền đạt đến mọi người dễ dàng hơn.
- Sử dụng Code Convention tạo điều kiện thuận lợi trong việc phát triển và bảo dưỡng hệ thống.
- Việc tìm kiếm, phát hiện và chính sửa lỗi trở nên đơn giản hơn.
- Một dự án có thể dùng chung 1 mã code nếu như bạn áp dụng chúng theo quy ước chung.
Quy tắc chung trong Coding convention
Quy tắc đặt tên ( Naming Convention)
Điều đầu tiên trước khi viết code chắc chắn bạn phải đặt tên cho code. Đây còn được gọi là quá trình định danh cho hằng, class, biến….. Vì thế, bạn có thể sử dụng nhiều quy tắc, cú pháp khác nhau để đặt tên code.
Tuy nhiên, để đặt tên chính xác thì bạn cần dựa vào cách sử dụng các loại ngôn ngữ lập trình cho các sản phẩm nhưng để thuận tiện hơn cho việc sử dụng thì hầu hết các công ty đều phát triển phần mềm trên nền tảng tiếng Anh. Với các cú pháp thông dụng có thể kể tới như sau:
Cú pháp lạc đà (camelCase)
Được sử dụng nhiều nhất khi đặt tên biến hoặc tên hằng, với quy ước chung là viết hoa chữ cái đầu tiên trong cụm từ viết thường.
Ví dụ:
- Hàm: firtName, lastName, personOne, nhapSoDienThoai…..
- Biến: float SpaceX, String strSoDienThoai…..
Cú pháp Pascal (PascalCase)
Gần giống với cú pháp camelCase thì với PascalCase người dùng sẽ phải viết hoa toàn bộ ký tự đầu của 1 cụm ký tự riêng biệt. Thường được sử dụng phổ biến trong khi đặt tên cho class và đôi khi là tên biến.
- Ví dụ: FirstName, class MickeyMouse…..
Cú pháp con rắn (snake_case)
Theo quy ước thì khi sử dụng cú pháp này mọi ký tự sẽ đều được viết dưới dạng ký tự thường, thêm vào đó để phân biệt thì mỗi từ cách nhau bởi dấu “_”.
Nhưng trong vài trường hợp đặc biệt thì các ký tự này có thể được chuyển từ chữ thường sang thành chữ in hoa. Và đây cũng là cú pháp thường xuyên được lập trình viên sử dụng để đặt tên hằng hoặc đặt tên cho cả chương trình hay dự án nào đó….
Ví dụ: first_name, last_name, final_final1, FINAL_FINAL…
Một số nguyên tắc đặt tên
Để áp dụng được chính xác và sử dụng đầy đủ các quy định của các cú pháp đặt tên như trên thì bạn cần lưu ý một vài nguyên tắc cơ bản sau:
- Thông thường khi đặt tên tên biến, tên lớp người ta thường sử dụng cụm danh từ hoặc danh từ, tính từ như UserModel, userName, isDownloaded…..
- Tên biến, tên hàm được đặt theo cú pháp CamelCase hoặc cú pháp snake_case.
- Tên lớp: Đặt theo cú pháp PascalCase.
- Hằng số: được đặt theo UPPER_CASE.
- Đặt tên phải có nghĩa và không được đặt tên kiểu viết tắt như uName, pName, a1,…
- Tránh đặt những cái tên quá chung chung hay tối nghĩa: như top, getAll,…
Quy tắc về số lượng
Dựa vào nền tảng quy định trong bộ quy tắc Oracle và Clean code a Handbook of Agile Software Craftsmanship của được viết bởi tác giả C.Martin. Thì quy tắc về số lượng sẽ phải tuân theo các quy định sau:
- Hàm không nên sử dụng quá 30 dòng.
- Lớp không nên để vượt qua 500 dòng.
- Một hàm không được vượt quá 5 tham số nên giữ dưới hoặc bằng 3.
- Hàm chỉ làm một việc duy nhất, trong trường hợp chính đáng, bạn có thể làm 2 việc được phép tuy nhiên tên hàm phải nói rõ ràng về điều này.
- Khi bạn khai báo biến thì một dòng chỉ chứa một biến .
- Một dòng không nên để quá dài 80 ký tự.
- Các câu lệnh được lồng nhau tối đa 4 cấp.
Quy tắc xuống hàng
Theo Oracle:
- Dấu phẩy thì xuống hàng sau dấu phẩy.
- Xuống hàng trước toán tử +,-,x,….
- Có nhiều cặp lồng vào nhau, thì xuống hàng phải theo từng cấp.
- Dòng xuống hàng mới thì được bắt đầu ở cùng cột với các đoạn lệnh cùng cấp ở trên.
Comment
- Hạn chế việc dùng comment để giải thích về code do đó hãy cải thiện lại các đoạn code.
- Chỉ nên dùng comment vào các trường hợp documentation hay cho các thư viện, các thông tin được đính kèm cho class.
- Sau khi một đoạn code bất kỳ trong dự án được hoàn thành thì bạn nên áp dụng quy tắc Comment, tránh trường hợp làm xong cả dự án mới thực hiện bước quan trọng này.
- Nếu bạn là Newbie mới bước chân vào nghề thì bạn nên sử dụng Comment để ghi chú hoặc giải thích cụ thể khi gặp các đoạn code khó hoặc quá phức tạp.
Các quy chuẩn trong việc viết code PHP
Chuẩn PSR-0, PSR-4: Chuẩn về Autoloading – khởi tạo và nạp PHP
Các quy chuẩn bắt buộc bạn phải tuân theo:
- Mỗi namespace và các class phải tuân thủ đầu đủ các điều kiện và phải có cấu trúc như sau\()*.
- Mỗi namespace cần phải có một top-level namespace tạm gọi là namespace gốc.
- Mỗi namespace có nhiều sub-namespace.
- Từ php 5.3 khi khai báo class bạn bắt buộc phải khai báo các namespace.
Chuẩn PSR-1: Các chuẩn cơ bản
Đây là quy chuẩn mà bất cứ cá nhân nào hoạt động trong lĩnh vực lập trình viên phải áp dụng nếu muốn code trở nên dễ đọc, dễ nhìn và việc sử dụng cũng đơn giản hơn.
- Code phải được viết trong các cặp thẻ và được sử dụng cặp thẻ ngăn thay cho echo.
- Mỗi file viết code theo quy chuẩn này đều phải được sử dụng <?PHP hoặc <?
- Code sử dụng UTF-8 không có Byte Order Mark.
- Các Namespace bắt buộc phải tuân theo chuẩn PSR autoloading PRS [PRS-4].
- Tên class viết theo quy tắc PascalCase hay còn được biết các tên khác StudlyCaps.
- Các hằng số phải viết hoa tất cả và phân tích cách nhau bằng dấu gạch chân.
- Mỗi file PHP chỉ làm 1 nhiệm vụ duy nhất, tránh sự chồng chéo.
- UTF – 8 hoặc BOOM chính là encode được sử dụng trong mỗi file code được lập trình.
- Nameclass chính là định dạng mặc định cho quy chuẩn PSR – 1.
Chuẩn PSR-2: Chuẩn viết code
Nếu PSR – 1 giúp code của bạn trở nên dễ đọc và dễ sử dụng hơn thì đối với PSR – 2 chính là quy chuẩn giúp bạn nhanh chóng tạo thành thói quen tối trong khi lập trình, từ đó giúp cho việc viết code trở nên “Sạch – đẹp – chuẩn nhất”.
- Code cần tuân thủ PSR-1 & PSR-0, việc sử dụng 4 khoảng trắng space để thụt dòng, tuyệt đối không được sử dụng tab, các ký tự trên cũng 1 dòng và không được vượt quá 120 ký tự, nên để nhỏ hơn hoặc bằng 80 ký tự và không nên có ký tự trắng ở cuối dòng . Cần phải có space sau khi khai báo namespace và sau khi khai báo use
- Thẻ đóng và mở của một hàm {} phải nằm riêng biệt trên cùng dòng và trước đó cần phải có space( khoảng trắng)
- Dùng dấu nháy đơn để khai báo các chuỗi không chứa các biến, nếu chuỗi có chứa các ký tự thì dấu nháy ở ngoài
- Nếu bạn dùng abstract, final hay static để khai báo hàm cần phải khai báo số thứ tự
- Cần để space trước và sau các phép toán, khi ép kiểu có space để ngăn các kiểu dữ liệu và biến được ép kiểu.
- Khi muốn khai báo biến property lập trình viên tuyệt đối không được dùng Key var.
- Thông thường implements thường được thể hiện dưới dạng nhiều lớp và mỗi lớp này sẽ tương ứng với 1 dòng cụ thể.
- Viết toàn bộ bằng chứ thường nếu sử dụng code cho các hằng số null, true, flase…..
Trên đây chúng tôi đã giải thích tới bạn Coding convention là gì? Các thông tin có liên quan đến Coding convention. Mong rằng bài viết trên là hữu ích tới bạn giúp bạn bỏ túi thêm nhiều kiến thức bổ ích cho việc lập trình. Đừng quên theo dõi Testerpro.vn để cập nhật thêm nhiều bài chia sẻ kiến thức mới và hấp dẫn khác nhé!
Đăng ký ngay: Khóa học Tester hàng đầu tại Testerpro ngay hôm nay!