Code convention (hay còn gọi là coding convention) là một tập hợp các quy tắc được định nghĩa để định dạng, cấu trúc và phong cách viết code trong một dự án phần mềm. Nó giúp đảm bảo rằng code được viết theo một cách thống nhất và dễ đọc, hiểu và bảo trì.
Code convention có thể bao gồm các quy tắc về định dạng, khoảng trắng, chú thích, đặt tên biến, hằng số, lớp, phương thức, v.v. Nó có thể được định nghĩa bởi các nhà phát triển, công ty, hoặc các tổ chức phát triển phần mềm.
Các bài viết liên quan:
Các quy tắc trong code convention không chỉ giúp cho người đọc code dễ hiểu hơn, mà còn giúp cho các nhà phát triển làm việc hiệu quả hơn, tiết kiệm thời gian và giảm thiểu lỗi. Ngoài ra, code convention còn là một yếu tố quan trọng trong việc duy trì và phát triển các dự án phần mềm lớn.
Ví dụ về code convention
Dưới đây là một số ví dụ về code convention:
- Đặt tên biến: Biến trong code nên được đặt tên một cách rõ ràng để người đọc có thể hiểu được chức năng của biến đó. Ví dụ:
customerName
thay vìcn
,orderDate
thay vìod
. - Thụt đầu dòng: Việc thụt đầu dòng giúp cho code trông dễ đọc hơn. Trong Java và C++, thông thường sẽ sử dụng 4 khoảng trắng để thụt đầu dòng.
- Chú thích: Chú thích giúp cho người đọc code hiểu được mục đích và ý nghĩa của code. Cần đặt chú thích cho các phần quan trọng của code và các hàm phức tạp.
- Định dạng: Định dạng code giúp cho code trông gọn gàng hơn, dễ đọc hơn và dễ hiểu hơn. Các định dạng thường được sử dụng bao gồm cách thụt đầu dòng, khoảng trắng, sử dụng dấu ngoặc kép hay dấu nháy đơn, v.v.
- Tên hàm: Tên hàm nên được đặt một cách rõ ràng và thể hiện chức năng của hàm. Tên hàm nên bắt đầu bằng một động từ để người đọc có thể hiểu được hàm này làm gì. Ví dụ:
calculateTotal()
thay vìtotal()
.
Những ví dụ trên chỉ là một số trong số rất nhiều quy tắc của code convention. Nó phụ thuộc vào ngôn ngữ lập trình và nhà phát triển/ công ty/ tổ chức phát triển phần mềm cụ thể.
Xem thêm Comment convention là gì ?
Các loại code convention trong java
Trong Java, có nhiều loại code convention khác nhau được sử dụng bởi các công ty và tổ chức phát triển phần mềm khác nhau. Dưới đây là một số loại code convention thông dụng được sử dụng trong Java:
- Oracle Code Conventions for the Java Programming Language: Đây là code convention được sử dụng bởi hãng Oracle, công ty phát triển và quản lý ngôn ngữ lập trình Java. Code convention này bao gồm các quy tắc về đặt tên, cấu trúc code, chú thích, định dạng, v.v.
- Google Java Style Guide: Đây là code convention được sử dụng bởi Google, một trong những công ty lớn nhất thế giới về công nghệ. Code convention này bao gồm các quy tắc về đặt tên, cấu trúc code, chú thích, định dạng, v.v. và cũng có những quy tắc riêng của Google như sử dụng tiền tố “m” cho các biến đối tượng và tiền tố “s” cho các biến static.
- Sun Code Conventions: Đây là code convention được sử dụng bởi Sun Microsystems, công ty sáng lập và phát triển Java trước khi được mua lại bởi Oracle. Code convention này bao gồm các quy tắc về đặt tên, cấu trúc code, chú thích, định dạng, v.v. và có tính bảo thủ hơn so với Oracle Code Conventions.
- BSD Java Style Guidelines: Đây là code convention được sử dụng bởi BSD, một trong những hệ điều hành mã nguồn mở phổ biến nhất thế giới. Code convention này bao gồm các quy tắc về đặt tên, cấu trúc code, chú thích, định dạng, v.v. và có tính bảo thủ hơn so với Google Java Style Guide.
Những loại code convention trên là các loại code convention thông dụng được sử dụng trong Java. Tuy nhiên, mỗi công ty hoặc tổ chức phát triển phần mềm có thể có những quy tắc code convention khác nhau tùy thuộc vào yêu cầu và quy định của họ.
Xem thêm Name convention là gì ?
Tại sao code convention trong java lại quan trọng
Code convention trong Java là các quy tắc và tiêu chuẩn được sử dụng để viết mã nguồn Java, nhằm đảm bảo sự thống nhất và dễ đọc của mã nguồn. Việc sử dụng code convention sẽ giúp cho các lập trình viên và nhà phát triển có thể dễ dàng đọc, hiểu và bảo trì mã nguồn. Ngoài ra, code convention còn giúp đảm bảo tính nhất quán của code khi có nhiều lập trình viên cùng tham gia vào một dự án, giúp tránh được các lỗi logic, dễ dàng kiểm tra và đánh giá chất lượng của code.
Với sự phát triển không ngừng của phần mềm, các dự án lớn thường có nhiều lập trình viên đóng góp vào cùng một mã nguồn, đặc biệt là trong các dự án open source. Việc sử dụng code convention sẽ giúp cho các lập trình viên có thể dễ dàng đọc và hiểu được mã nguồn của nhau, giảm thiểu sự nhầm lẫn và tăng tính nhất quán của code. Ngoài ra, khi một dự án được đóng góp bởi nhiều lập trình viên, việc tuân thủ code convention cũng giúp đảm bảo tính nhất quán và đồng bộ giữa các phần của code, từ đó giảm thiểu số lượng lỗi và dễ dàng kiểm tra và đánh giá chất lượng của code.
Tóm lại, code convention trong Java rất quan trọng để đảm bảo tính đồng bộ, nhất quán, dễ đọc và dễ bảo trì của mã nguồn, đặc biệt là khi có nhiều lập trình viên cùng tham gia vào một dự án.
Xem thêm Clean code là gì ?
Một số quy tắc code convention trong java phổ biến nhất
Dưới đây là một số quy tắc code convention trong Java phổ biến nhất:
- Tên class nên được viết hoa chữ cái đầu tiên của mỗi từ và sử dụng kiểu CamelCase. Ví dụ: MyClassName.
- Tên biến nên được viết thường chữ cái đầu tiên của mỗi từ và sử dụng kiểu camelCase. Ví dụ: myVariableName.
- Tên hằng số nên được viết hoa toàn bộ và sử dụng dấu gạch dưới để ngăn cách các từ. Ví dụ: MY_CONSTANT.
- Tên phương thức nên được viết hoa chữ cái đầu tiên của mỗi từ và sử dụng kiểu camelCase. Ví dụ: myMethodName.
- Sử dụng khoảng trắng để ngăn cách các toán tử và câu lệnh. Ví dụ: a + b, if (x > 0).
- Tránh sử dụng tên biến có ý nghĩa quá chung chung như “temp”, “data”, “obj”, v.v… thay vào đó nên sử dụng các tên có ý nghĩa rõ ràng và mô tả được mục đích của biến.
- Tránh sử dụng các ký tự đơn lẻ để đặt tên, ví dụ như sử dụng tên biến như “l”, “O”, “I”, v.v… vì chúng có thể bị nhầm lẫn với các ký tự tương tự trong bộ ký tự.
- Sử dụng các từ khoá “this” để chỉ ra biến thành viên của class trong trường hợp có sự trùng tên biến.
- Sử dụng các dấu ngoặc nhọn để đóng một khối lệnh thay vì sử dụng dấu ngoặc đơn hoặc không dùng dấu ngoặc.
- Tránh sử dụng quá nhiều lồng nhau trong các khối lệnh. Khi cần, hãy sử dụng các phương thức riêng biệt để tách các phần của code thành các khối lệnh riêng biệt để giảm sự phức tạp của code.
- Sử dụng các kiểu dữ liệu nguyên thủy của Java, như int, double, boolean,… thay vì sử dụng kiểu dữ liệu đối tượng tương ứng. Ví dụ, sử dụng int thay vì Integer khi không cần tạo các đối tượng mới.
- Sử dụng final để khai báo các biến không thể thay đổi giá trị.
- Sử dụng biến địa phương (local variable) khi cần thay đổi giá trị của biến trong phạm vi của một phương thức. Sử dụng biến thành viên (instance variable) để lưu trữ các giá trị được sử dụng trong toàn bộ class.
- Sử dụng cấu trúc điều kiện if-else-if thay vì nhiều câu lệnh if lồng nhau.
- Sử dụng các comment để giải thích ý nghĩa và mục đích của các phần code, đặc biệt là khi viết các phương thức phức tạp hoặc các đoạn code khó hiểu.
- Tránh sử dụng các hàm static để truy cập các biến thành viên trong class, thay vào đó nên sử dụng các phương thức non-static.
- Sử dụng các cặp getter và setter để truy cập và thay đổi giá trị của các biến thành viên trong class.
- Tránh sử dụng các tham số có kiểu dữ liệu quá chung chung như Object, thay vào đó nên sử dụng các kiểu dữ liệu cụ thể hơn để giảm thiểu sự mơ hồ và tăng tính chính xác của code.
- Sử dụng phương thức equals để so sánh giá trị của hai đối tượng.
- Tránh sử dụng các phương thức deprecated, vì chúng có thể bị loại bỏ trong các phiên bản Java mới hơn. Nên sử dụng các phương thức mới và cập nhật theo phiên bản mới nhất của Java.
- Sử dụng các hằng số để lưu trữ các giá trị không thay đổi trong code, đặc biệt là các giá trị được sử dụng nhiều lần trong code. Điều này giúp tăng tính ổn định và sửa chữa của code.
- Sử dụng các từ khóa try-catch để xử lý các ngoại lệ (exceptions) trong code. Việc này giúp tránh việc các lỗi xảy ra và khiến ứng dụng của bạn hoạt động không ổn định.
- Sử dụng cú pháp camelCase để đặt tên biến, phương thức và lớp. Đây là cú pháp phổ biến trong Java và giúp tăng khả năng đọc và hiểu code của người đọc.
- Sử dụng các dấu ngoặc đơn để đặt tên các hằng số, ví dụ: final int MAX_NUMBER = 100;
- Sử dụng các thư viện (libraries) có sẵn trong Java để giảm thiểu việc phải viết lại code, tăng tốc độ phát triển ứng dụng và giảm thiểu sai sót trong code.
- Sử dụng các công cụ hỗ trợ kiểm tra code (code analysis tools) để tìm ra các lỗi và cải thiện chất lượng code. Ví dụ như IntelliJ IDEA, Eclipse, SonarQube,…
- Thường xuyên cập nhật các phiên bản mới của Java và các công cụ hỗ trợ để tận dụng những tính năng mới nhất và cải thiện hiệu suất của ứng dụng.
- Lưu ý đến quy tắc đóng gói (encapsulation), giúp che giấu thông tin và đảm bảo tính riêng tư của dữ liệu trong class.
- Sử dụng các quy tắc thiết kế hướng đối tượng (object-oriented design principles) để thiết kế và triển khai các class và phương thức.
- Cuối cùng, hãy luôn giữ code của mình sạch và dễ đọc, giúp cho việc sửa lỗi và bảo trì code dễ dàng hơn.
Xem thêm Function trong clean code