“Code Convention là gì?” – đây là thắc mắc của nhiều người khi mới làm quen với công việc viết code, lập trình, phát triển phần mềm… Các khối code vốn đã phức tạp và bao gồm nhiều thành phần. Vì vậy chúng cần phải được xây dựng dựa trên những quy tắc chung để trở nên dễ nhìn và dễ hiểu nhất. Cũng chính vì lý do này mà Code Convention đã ra đời. Cùng Kiến Thức Phần Mềm tìm hiểu rõ hơn về vấn đề này trong bài viết sau nhé.
Giới thiệu chung về Code Convention
Code Convention là gì?
Code Convention (Coding Standards) được hiểu đơn giản là “quy ước viết code”. Nói một cách dễ hiểu, Code Convention là một nhóm các quy ước, quy tắc chung được áp dụng khi viết Code. Đó là các quy tắc số lượng, quy tắc xuống hàng, quy tắc định danh cho class, hằng, biến… Khi xây dựng code theo những quy ước này, các khối code sẽ trở nên “sạch đẹp, dễ nhìn và dễ hiểu hơn.
Các quy tắc viết code đóng vai trò vô cùng quan trọng đối với những dự án phát triển phần mềm lớn, đòi hỏi nhiều lập trình viên. Dựa trên các quy ước chung, các thành viên trong nhóm phát triển có thể dễ dàng giao tiếp và hiểu được ý tưởng của người khác. Việc thêm các module chức năng vào phần mềm, phát triển hay bảo trì hệ thống cũng được thực hiện nhanh chóng hơn.
Code Convention có ý nghĩa gì?
Sau khi đã hiểu Code Convention hay Coding Standard là gì. Chắc hẳn bạn cũng khá băn khoăn tại sao cần phải có Code Convention? Trên thực tế, để hoàn thiện một dự án phần mềm cần có sự cộng tác của nhiều người chứ không thể chỉ với một cá nhân riêng lẻ (trừ những trường hợp đặc biệt).
Chính vì vậy nếu phong cách viết code của mỗi người là khác nhau. Các thành viên khác sẽ gặp nhiều khó khăn khi cố gắng đọc hiểu những gì bạn đang viết. Khi đó sẽ không tránh khỏi tình trạng lặp đi lặp lại những câu hỏi như: “Cái này là cái gì vậy?”, “Bạn có thể giải thích cho mình chỗ này không?”…
Từ ví dụ trên, có thể dễ dàng hiểu được ý nghĩa của Coding Convention là gì:
- Giúp cho quá trình làm việc nhóm trở nên trơn tru, đạt hiệu quả cao
- Mỗi thành viên đều tuân theo những quy tắc chung, tạo sự đồng bộ cao
- Giúp các thành viên khác dễ dàng hiểu code bạn viết
- Tạo điều kiện thuận lợi cho việc bảo trì và nâng cấp phần mềm
- Có thể áp dụng quy ước chung trong nhiều dự án khác nhau
- Có thể tái sử dụng code trong quá trình triển khai các phần mềm khác
- Cho phép người viết code dễ dàng tìm lỗi sai và sửa lỗi
Các quy tắc chung của Code Convention là gì?
Quy tắc đặt tên (Naming Convention)
Khi viết code, bạn cần đặt tên hay định danh cho các class, hằng, biến… Chính vì vậy mà quy tắc đặt tên hay “Naming Convention” đã ra đời với các cú pháp khác nhau. Các cú pháp riêng được sử dụng tùy theo từng ngôn ngữ. Tuy nhiên hầu hết các công ty phần mềm hiện nay đều sử dụng tiếng Anh cho quy tắc định danh. Các cách đặt tên thông dụng nhất là:
Cú pháp lạc đà (camelCase)
Với cú pháp này, từ đầu tiên của cụm sẽ được viết thường. Sau đó ký tự đầu của những từ đứng sau sẽ được viết hoa. Cú pháp lạc đà thường được áp dụng cho các phương thức, tên biến hoặc hàm.
- Ví dụ về hàm hoặc phương thức: getOnTop(), runLow(), lastName, firstName…
- Ví dụ về biến, float spaceX, int i…
Cú pháp con rắn (snake_case)
Cú pháp con rắn quy định tất cả các chữ cái đều được viết thường. Ngoài ra sử dụng thêm dấu gạch dưới “_” để phân tách các từ. Tuy nhiên đối với một số ngôn ngữ hay một vài trường hợp nhất định thì tất cả các chữ cái có thể được viết in hoa toàn bộ. Cú pháp này khá phổ biến khi đặt tên hằng, đôi khi việc đặt tên chương trình cũng sử dụng cú pháp con rắn.
Ví dụ: final_final1_final2, MAX_SELECT…
Cú pháp Pascal (PascalCase)
Khi áp dụng cú pháp này, toàn bộ các ký tự đầu của mỗi từ trong 1 cụm đều sẽ được viết hoa. Cú pháp này thường được dùng cho tên class hay đôi khi bao gồm cả tên biến.
Ví dụ: class MickeyMouse, class Mice…
Những lưu ý khi đặt tên
Có một số lưu ý quan trọng mà bạn cần nhớ khi áp dụng quy tắc đặt tên:
- Tên biến và tên class thường là danh từ
- Tên hàm thường bắt đầu với động từ
- Việc đặt tên nên gắn liền với chức năng
- Không nên đặt tên viết tắt điều này dễ gây khó hiểu cho người đọc
- Tránh đặt tên không có ý nghĩa
Quy tắc về số lượng
Quy tắc số lượng khi viết code được đề cập trong bộ quy tắc của Oracle, cuốn Refactoring in Large Software Projects: Performing Complex Restructurings Successfully của tác giả Martin Lippert hay Clean Code A Handbook of Agile Software Craftsmanship do Robert C. Martin viết. Cụ thể quy tắc này như sau:
- Một class không nên dài hơn 500 dòng
- Một hàm không nên dài hơn 30 dòng
- Không nên có nhiều hơn 5 tham số trong một hàm
- Một câu lệnh nên được lồng ghép nhiều nhất là 4 cấp
- Một dòng code chỉ nên có độ dài từ 80 ký tự trở xuống
- …
Quy tắc bình luận
- Không nên giải thích code bằng comment mà nên áp dụng quy tắc đặt tên khi viết code để giúp chúng trở nên dễ hiểu hơn
- Nếu là người mới làm quen với lập trình, bạn có thể dùng tính năng comment để giải thích cho các đoạn code phức tạp
- Comment nên giải thích tại sao chứ không nên chỉ dẫn cách làm như thế nào
- Chỉ nên comment ngay sau khi hoàn tất một đoạn code nào đó chứ không nên viết xong toàn bộ code mới comment
Quy tắc xuống dòng
Quy tắc xuống dòng được bộ quy tắc của Oracle quy định như sau:
- Với một hàm nhiều cấp thì nên xuống dòng đối với từng cấp
- Các đoạn code cùng một cấp nên được viết ở cùng một cột, khi xuống dòng nên bắt đầu cùng cấp với dòng phía trên
- Xuống dòng trước các toán tử như ?, *, -, +…
Những câu hỏi thường gặp về Code Convention
Có thể viết code mà không cần Code Convention không?
Có, chỉ cần viết code đúng thì phần mềm vẫn có thể hoạt động. Tuy nhiên khi cần bảo trì, nâng cấp phần mềm hoặc tìm và sửa lỗi sai thì bạn sẽ gặp rất nhiều khó khăn.
Coding Convention Java là gì?
- Coding Convention (Coding Standards) trong Java bao gồm:
- Quy tắc White Space: thụt đầu dòng và dòng trống
- Quy tắc ngoặc tròn và ngoặc nhọn
- Quy tắc Comment
- Quy tắc đặt tên: quy tắc viết hoa (Pascal case, Camel case…), đặt tên abstract class, interface, class, biến…
- Sử dụng biến (variables)
- Import thư viện sử dụng
- …
Coding convention C# là gì?
Coding convention trong C# bao gồm:
- Quy ước viết hoa: Pascal Case, Camel Case, Uppercase…
- Cách tổ chức file trong 1 dự án: File sourcecode C#, thư mục sourcecode C#…
- Quy tắc đặt tên biến: đặt tên Namespace, class, Interface, Attribute, Enumeration…
- …
Chắc hẳn sau khi đọc xong bài viết này, bạn đã hiểu phần nào Code Convention là gì rồi. Bộ quy tắc viết code khá linh hoạt và có thể được quy định tùy từng ngôn ngữ, đơn vị phát triển phần mềm hay từng dự án khác nhau. Hy vọng rằng bài viết của KTPM sẽ giúp ích cho bạn trong quá trình viết code và lập trình phần mềm!