QUY
ƯỚC KHI VIẾT MÃ NGUỒN C/C++
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.
0 nhận xét:
Đăng nhận xét