Giới thiệu
Khi viết mã nguồn, việc sửa lỗi, hay dùng lại mã nguỗn là điều rất cần thiết. Để sử dụng mã nguồn một cách hiệu quả và làm cho người đọc dễ hiểu thì việc trình bày mã nguồn là điều rất quan trọng. Nếu không có một quy tắc nào trong viết mã nguồn, thì chính người viết ra nó cũng khó hiểu được mã nguồn đó sau một thời gian dài. Do đó chúng ta cần có các Quy tắc, hay còn gọi làPhong cách viết mã nguồn. Bài viết này liệt kê một số Quy tắc cơ bản cần thiết.
1. Các quy tắc đặt tên trong chương trình
Quy tắc 1: Tên các định danh (hằng, biến, hàm, mảng, cấu trúc, lớp, …) trong chương trình phải thể hiện được ý nghĩa của nó.
Quy tắc 2: Tên hằng được viết hoa toàn bộ, các từ cách nhau bằng ký tự ‘_’.
Ví dụ:
const int NUMBER_OF_ELEMENTS 100
Quy Tắc 3: Tên biến phải thể hiện được ý nghĩa của nó, viết bằng chữ thường, các từ cách nhau bằng ký tự ‘_’.
Ví dụ:
int tu_so, mau_so;
Quy Tắc 4: Tên hàm phải là động từ thể hiện hành động cần thực hiện.
Ví dụ:
int check_bad_value (long value)
int kiem_tra_so_nguyen_to (int n)
2. Quy tắc viết câu lệnh
Quy Tắc 5: Mỗi câu lệnh được viết riêng trên một dòng.
Ví dụ sai
|
Ví dụ đúng
|
x = 3; y = 5;
|
x = 3;
y = 5;
|
if (a > b) cout << "a lon hon b";
else cout << "a nho hon b";
|
if (a > b)
cout << "a lon hon b";
else
cout << "a nho hon b";
|
for (int i = 0; i < n; i++) x = x + 5;
|
for (int i = 0; i < n; i++)
x = x + 5;
|
Quy Tắc 6: Các dấu ‘{‘, ‘}’ được viết riêng trên một cột.
Ví dụ sai
|
Ví dụ đúng
|
void Swap(int &a, int &b) {
int c = a;
a = b;
b = c;
}
|
void Swap(int &a, int &b)
{
int c = a;
a = b;
b = c;
}
|
Quy Tắc 7: Các câu lệnh if, switch, while, for, do được viết riêng trên một đoạn.
Ví dụ sai
|
Ví dụ đúng
|
if (a > b)
cout << "a lon hon b";
for (int i = 0; i < n; i++)
x = x + 5;
k = k * x;
|
if (a > b)
cout << "a lon hon b";
for (int i = 0; i < n; i++)
x = x + 5;
k = k * x;
|
Quy Tắc 8: Các câu lệnh cùng thực hiện một công việc được viết riêng trên một đoạn.
Ví dụ sai
|
Ví dụ đúng
|
int c = a;
a = b;
b = c;
k = k * a;
x = b + c;
|
int c = a;
a = b;
b = c;
k = k * a;
x = b + c;
|
3. Quy Tắc về khỏang trắng (space)
Quy Tắc 9: Các câu lệnh nằm giữa dấu ‘{‘, ‘}’ được viết cách vào một khoảng tab. Cũng như các câu lệnh con của if, else, while, for, switch, cũng được viết cách vào một khoảng tab.
Ví dụ sai
|
Ví dụ đúng
|
if (a > b)
cout << "a lon hon b";
else
cout << "a nho hon b";
for (int i = 0; i < n; i++)
x = x + 5;
|
if (a > b)
cout << "a lon hon b";
else
cout << "a nho hon b";
for (int i = 0; i < n; i++)
x = x + 5;
|
Quy Tắc 10: Xung quanh các toán tử 2 ngôi (+, -, *, >=,…) viết cách một khoảng trắng.
Ví dụ sai
|
Ví dụ đúng
|
x=x+5*a-c;
|
x = x+5 * a - c;
|
if (a>=b)
|
if (a >= b)
|
4. Quy Tắc viết chú thích
Quy Tắc 11: Chú thích phải rõ ràng, dễ hiểu và diễn giải được ý nghĩa của đoạn lệnh. Đầu mỗi hàm, struct, class, phải có chú thích diễn giải ý nghĩa của nó.
Quy Tắc 12: Sử dụng // cho chú thích 1 dòng; sử dụng /* */ cho các chú thích từ 2 dòng trở lên. Dùng /* */ để tạm thời comment out các đoạn chương trình để test và debug.
Mỗi file nguồn, cả .CPP và .H, đều phải bắt đầu bằng một khối chú thích đủ để người đọc có thể hiểu mục đích của file.
Mẫu như sau:
/***************************************************************
* Tên/Name: Họ tên
* Project: mô tả/tên dự án (một dòng, giống nhau tại mọi file)
* Purpose: Mục đích sử dụng của mã chương trình hoặc các khai báo trong
* file này (một vài dòng)
**************************************************************/
Mỗi lớp, hàm, phương thức phải có một khối chú thích mô tả ngắn gọn lớp, hàm, phương thức đó làm gì; đối với hàm/phương thức: liệt kê tất cả các tham số, nêu rõ ý nghĩa của tham số; và mô tả điều kiện trước và sau của hàm/phương thức đó.
Có thể chú thích các đoạn code bên trong hàm, tuy nhiên chỉ nên chú thích đủ hiểu. Quá nhiều chú thích và chú thích thừa làm code trông rối. Tất cả các chú thích phải được lùi đầu dòng cùng đoạn code quanh nó.
5. Quy Tắc Thiết kế
Quy Tắc 13: Mỗi phương thức/hàm (kể cả hàm main()) không nên viết quá dài (vượt quá 30 dòng) tính từ dấu mở hàm ‘{‘ tới ngoặc kết thúc hàm ‘}’.
Quy Tắc 14: Hạn chế việc dùng biến toàn cục.
Nguồn: dientumaytinh.com
them c nua di tri
Trả lờiXóacái này áp dụng cho C/C++ ngoài ra có thể áp dụng cho các ngôn ngữ khác như java,... vẫn được mà
Trả lờiXóa