Coding
convention là thuật
ngữ mà có lẽ bất kì một lập trình viên nào cũng từng nghe nói
tới. Dù trên thực tế, việc có tuân thủ theo coding convention hay không hầu như không ảnh hưởng đến
kết quả công việc. Hàm vẫn chạy, code vẫn thực thi đúng, và sản
phẩm sẽ chẳng có gì khác biệt.
Tuy nhiên, với các hệ thống
lớn, được thiết kế và bảo trì qua nhiều giai đoạn, với nguồn nhân
lực khác nhau, thì việc tuân theo một coding convention thực sự là vấn đề sống còn. Người
đọc code chắc chắn sẽ hạnh phúc và tiết kiệm thời gian hơn rất
nhiều, khi đọc một đoạn code với các biến được đặt tên rõ ràng
như userName, job, ... thay vì a, b, c.
Trong phần này sẽ giúp chúng ta hiểu
được các điều phải tuân thủ khi lập trình, để tạo sự thống nhất giữa
các nhóm khi làm việc với nhau, cũng như tạo điều kiện thuận lợi cho người
đi sau trong việc bảo trì, phát triển hệ thống.
Quy định về code
Qui định chung về đặt tên
Mọi định danh (tên biến, hằng, phương thức, lớp, đối tượng
v.v.) nên bằng tiếng anh, đúng chính tả, và có nghĩa.
Tên ở đây bao gồm tên class,
tên biến,
tên hằng
số, tên
hàm, tên
file.
- Viết tên bằng tiếng anh trong lúc lập trình, gần như
là yêu cầu bắt buộc khi bước vào làm ở bất kì công ty nào. Hãy tập
cho mình một thói quen chuyên nghiệp, từ những việc nhỏ nhất.
- Đúng chính tả, có thể xem đây là một cách để mọi người luyện
thêm vốn từ vựng của mình.
- Có nghĩa, tức là tên phải gắn liền với đặc điểm, chức năng
của đối tượng tương ứng. Ví dụ: $userName
để thể hiện tên người dùng, $image để thể hiện ảnh đại diện...
Lưu ý: Các biến chạy trong vòng lặp (for, while) không cần tuân theo
quy tắc này, vì trên thực tế, các biến $i, $j đã trở
thành chuẩn.
Qui định về Naming convention
Khai báo
|
Quy định
|
Ví dụ
|
Tên lớp
|
Tên
class sẽ theo dạng UpperCamelCase, viết
hoa chữ đầu tiên của mỗi từ.
|
class
Raster;
class
ImageSprite;
|
Tên phương thức/hàm
|
Tên hàm/phương thức sẽ theo chuẩn lowerCamelCase, từ đầu tiên viết thường, các từ
tiếp sau viết hoa chữ cái đầu.
|
run();
runFast();
getBackground();
|
Tên biến
|
Tương tự như tên hàm.
|
int i;
int
currentUserLog;
float
myWidth;
|
Tên hằng
|
Viết hoa tất cả kí tự, các từ cách nhau bằng
dấu “_”
|
final static int MAX_PARTICIPANTS = 10;
|
Chú thích khi code
Giới thiệu
Nếu có ai hỏi bạn, tại sao tất
cả ngôn ngữ lập trình, đều có kí tự để “comment” một dòng, hoặc một đoạn code (ví dụ trong Java
hay C++ là // và /* */). Có lẽ câu trả lời đầu
tiên của không ít người là để tạm thời xóa bỏ đi đoạn code không
muốn sử dụng.
Nhưng đó chỉ là một phần của
vấn đề, trên thực tế, ý nghĩa quan trọng hơn rất nhiều của các kí
tự này là để giải thích, ghi chú, hay nói chung là document cho code. Hãy thử tượng
tượng bạn sẽ khó chịu thế nào, khi sử dụng một hàm nào đó của
Java mà lại không có bất kì lời giải thích nào khi rê chuột vào
tên hàm!
Vì thế, hãy tập cách document đầy đủ cho bất kì sản
phẩm nào của mình khi code, vì có thể, bạn đã giúp ích rất nhiều
cho người đi sau.
Sau đây là một số qui tắc mà
chúng ta sẽ thống nhất khi code trong hệ thống.
Các qui tắc
a) Qui
tắc chung
Document nên viết bằng tiếng anh, đúng chính tả và
càng rõ ràng càng tốt.
b) Với
class và hàm
Document theo chuẩn, với mọi lớp và hàm.
Document
với Lớp
Ví dụ:
Bạn cần viết một lớp HelloWorl
/**
* The HelloWorld program implements an application that
* simply displays "Hello World!" to the standard output.
* @author Codelean
* @version 1.0
* @since 2019-11-06
*/
public class HelloWorld {
public static void main(String[] args) {
// Prints Hello, World! on standard output.
System.out.println("Hello World!");
}
}
Dòng đầu tiên chính là lời
giải thích cho class, hãy giải thích càng rõ càng tốt, bằng tiếng
anh, và... đúng chính tả.
Các dòng phía sau là các thông
tin khác của class, tối thiểu các bạn hãy để tên tác giả theo mẫu trên.
Document
với phương thức/hàm
Các
hàm trong class cũng được thể hiện một cách tương tự, ngoại trừ
có phần giải thích thêm cho các thông số truyền vào.
Bạn hãy đọc hàm sau đây và cảm nhận sẽ dễ hiểu như thế nào:
/**
* This method is used to add two integers. This is
* a the simplest form of a class method, just to
* show the usage of various javadoc Tags.
* @param firstNumber This is the first paramter to addNum method
* @param secondNumber This is the second parameter to addNum method
* @return int This returns sum of firstNumber and secondNumber.
*/
public int addNum(int firstNumber,int secondNumber){
return firstNumber+secondNumber;
}
c) Với
biến và hằng
Document chức năng của mọi biến, hằng trước khi khai
báo
Đây là điều rất cần thiết,
nhất là với người đọc code. Ví dụ, chúng ta cần khai báo các thuộc
tính tên, tuổi và nghề nghiệp cho class user, đồng thời khai báo một
hằng tên công ty. Chúng ta sẽ thực hiện như sau:
//Company name, same for all user.
const WEBSITE_NAME = "codeLean.vn";
//User’s name
private String userName;
//User’s age
private int age;
d) Với các
dòng code
Ghi chú càng rõ ràng, dễ hiểu càng tốt cho các dòng code
Các dòng xử lí lặp, rẽ nhánh,
giải quyết vấn đề... đều phải được giải thích rõ ràng. Hãy xem
phiên bản hàm add được trình bày ở trên, với các lời giải thích
rõ ràng:
public int addNum(int firstNumber,int secondNumber){
// If the first parameter is 0, return 0.
if(firstNumber==0){
return 0;
}else{
// If the second parameter is 0, return 1.
if(secondNumber==0)
return 1;
else
return firstNumber+secondNumber;
}
}
FORMAT CODE
Ở khía
cạnh nào đó, thì một file mã nguồn cũng là một văn bản thuần túy,
và hiển nhiên, vẫn có những cách format mà chúng ta phải tuân thủ.
Một trong những qui tắc có thể kể ra như sau:
- Vị trí hai kí tự mở hàm ({) và kết thúc hàm (}) tương ứng.
- Giữa biến và phép toán phải có một khoảng chắn (Ví dụ: a == b thay vì a==b).
- Chữ cái đầu tiên của câu comment cách kí tự comment một khoảng chắn.
Tất
nhiên, còn khá nhiều qui tắc nhỏ nhặt khác, và chắc chắn sẽ rất
kinh khủng và mất thời gian nếu mỗi người lập trình viên phải tuân
theo các qui tắc này.
Tuy nhiên, bạn không cần phải nhớ, và cũng không cần phải làm, vì
các IDE sẽ làm giúp bạn.
Chúng ta có qui tắc cuối cùng:
Sau khi code xong và thực hiện tất cả các qui tắc
trên, format code bằng IDE
Cách format code sẽ khác nhau
tùy vào IDE, ví dụ, trên các IDE có nhân Eclipse sẽ là Ctrl + Shift + F, trên Netbeans là Alt + Shift + F.
Đăng nhận xét