Clean Code with C++ in cxview.ai

Những cái tên có nghĩa

Sử dụng các tên gợi lên mục đích sử dụng

Không viết tắt

Đúng chính tả

Không đặt tên danh sách là list, theList, array, arr,....

Thay vì

int d; // elapsed time in days

Nên

int elapsedTimeInDays;
int daysSinceCreation;

Những con số nên được gán với biến hằng số #define để mô tả ý nghĩa sử dụng

Thay vì

std::vector<int> normal_grid_time;
std::vector<int> layout_grid_time;

Nên

std::vector<Block> time_heatmap_grid;
std::vector<Block> time_heatmap_layout_grid;

Tránh sai lệch thông tin

Không dùng từ dễ khiến người đọc hiểu sau nghĩa. Ví du: axi, sco, hp,...

Thay vì

Nên

Thay vì

Nên

Tạo sự khác biết có ý nghĩa

Biến tham số đầu vào của một hàm đặt là a1, a2, ..., aN là những tên biến không gây sai lệch thông tin nhưng không mang ý nghĩa về thông tin.

Data và Info là những từ gây nhiễu tương tự như các mạo từ a, an, the trong tiếng anh

Thay vì

Nên

Thay vì

Nên

Thay vì

Nên

Thay vì

Nên

Thay vì

Nên

Từ variable không nên xuất hiện trong tên biến, từ table không nên xuất hiện trong tên hàm

Dùng các từ phát âm được

Thay vì

Nên

Sử dụng các tên dễ tìm kiếm

Các tên 1 ký tự nên chỉ sử dụng như biến cục bộ trong các phương thức ngắn. Ví như như biến i, j trong vòng lặp for.

Độ dài tên nên tương ứng với kích thước của phạm vi chứa nó. Nếu tên biến hoặc hằng số sử dụng ở nhiều nơi khách nhau bắt buộc đặt tên dễ tìm kiếm.

Tên lớp

Sử dụng các danh từ hoặc cụm danh từ như Customer, WikiPage, Account để đặt tên các lớp và đối tượng. Tránh các tên như Manager, Processor, Data hoặc Info.

Tên một lớp không nên là động từ

Tên phương thức

Nên là động từ hoặc cụm động từ như: postPaymemt, deletePage, save, get, set,...

Sự rõ ràng nên được ưu tiên hơn tính giải trí

Không chơi chữ

Sử dụng các thuật ngữ nhất quán

Sử dụng tên trong miền vấn đề và giải pháp

Ví dụ dự án liên quan đến lĩnh vực object detection, object tracking, retail thì sử dụng những từ liên quan trong lĩnh vực đó.

Thêm ngữ cảnh có ý nghĩa

Các từ nếu để chung như state, city, street, firstName...thì có nghĩa như địa chỉ nhưng khi đứng một mình không có nghĩa. Do vậy, nên thêm tiền tố để mô tả ngữ cảnh như: addrFirstName, addrStreet, addrState,...

Giải pháp tốt hơn là tạo ra lớp Address

Last updated