+1

Coding convention là gì ?

I. Định nghĩa ?

  • Coding convention là một tập hợp các quy tắc và tiêu chuẩn mà các lập trình viên phải tuân theo trong quá trình viết code
  • Ngoài 4 quy tắc chung ( về đặt tên, số lượng, xuống dòngcomment ), thì mỗi một ngôn ngữ lập trình khác nhau sẽ có bổ sung các quy tắc khác nhau
  • Việc tuân thủ coding convention sẽ giúp cho chúng ta đảm bảo được tính nhất quán, tăng khả năng đọc hiểudễ bảo trì mã nguồn, từ đó giúp các thành viên trong team tiết kiệm được thời gian khi đọc code và từ đó hiệu suất làm việc nhóm được cải thiện hơn 😃

II. Các quy tắc chung

2.1. Quy tắc đặt tên

  • Cách đặt tên hàm, tên biến có ảnh hưởng lớn đến khả năng đọc hiểu code. Việc đặt tên biến không có ý nghĩa ( Ví dụ như: a, b, c, ClassD, ClassE.... ) thì chắc chắn sẽ khiến cho việc đọc hiểu code và quản lý, bảo trì trở nên vô cùng khó khăn đúng không nào 🤔🤭

  • Có 3 quy tắc đặt tên phổ biến là camelCase, PascalCasesnake_case

    camelCase: Từ đầu tiên trọng cụm từ được viết thường, những ký tự còn lại thì viết hoa, áp dụng cho tên hàm, tên biến và tên phương thức. Ví dụ: firstName, lastName, getName(), findStudent()...

    PascalCase: Viết hoa ký tự đầu tiên của tất cả từ có trong cụm, thường áp dụng cho tên class hay tên biến. Ví dụ: MickeyMouse, FirstName,…

    snake_case: Toàn bộ chữ cái đều viết thường, phân tách nhau bằng dấu “_”, thường dùng cho tên hằng số hoặc tên của chương trình. Ví dụ: program_final, get_max(),…

image.png

Một số quy tắc chung trong việc đặt tên

  • Đặt tên phải có ý nghĩa, mô tả đúng chức năng của biến, của function, class.... (VD : authorName, authorAge, GetAllBooks(),...)
  • Tên class và tên biến sử dụng là danh từ ( VD: class Author, class Book, var bookTitle,... )
  • Tên function sử dụng động từ ( VD: SaveBook(), DeleteAuthor(),.... )

2.2. Quy tắc về số lượng

  • Một dòng code không nên dài quá 80 ký tự
  • Một câu lệnh lồng tối đa 4 cấp
  • Một function không nên chứa qua 5 tham số
  • Một function không nên dài quá 30 dòng
  • Một class không nên dài quá 500 dòng
  • Mỗi một hàm chỉ nên làm một việc duy nhất, nếu có phải thực hiện hai mục đích khác nhau thì tên của function cần phải thể hiện rõ điều này. VD : SaveAndPublishArticleOnViblo(),...

2.3. Quy tắc xuống dòng

  • 2.3.1. Nếu một hàm có nhiều cấp lồng nhau thì nên xuống dòng

⛔️ Không nên

public void PrintBookTitles(List<String> titles) {
    titles.forEach(item -> { if (!item.IsNullOrEmpty()) { Console.WriteLine(item.ToUpperCase()); } });
}

✅️ Nên

public void PrintBookTitles(List<string> titles)
{
    data.ForEach(item =>
    {
        if (!string.IsNullOrEmpty(item))
        {
            Console.WriteLine(item.ToUpper());
        }
    });
}
  • 2.3.2. Các đoạn code bằng cấp nên ở cùng một một cột với nhau, dòng xuống hàng nên bắt đầu cùng cấp với dòng phía trên

⛔️ Không nên

public void SendEmail(string recipient, 
    string subject, string body, 
        bool isImportant)
{
    // Code here
}

Vấn đề : string subject và string body không cùng cấp với string recipient mặc dù trên thực tế là cùng cấp với nhau, bool isImportant lại bị lệch sâu hơn nữa

✅️ Nên

public void SendEmail(
    string recipient, 
    string subject, 
    string body, 
    bool isImportant)
{
    // Code here
}

Lợi ích : Các tham số cùng cấp với nhau thì thẳng hàng với nhau ➡️ dễ nhìn và dễ bảo trì hơn ♥️

  • 2.3.3. Xuống dòng trước các toán tử

⛔️ Không nên

int result = a + b +
             c * d /
             e - f;

Vấn đề : Toán tử +, /, - đặt ở cuối dòng, gây khó đọc, dễ bị nhầm lẫn rằng dòng đó đã kết thúc.

✅️ Nên

int result = a 
    + b
    + c * d
    / e
    - f;

Lợi ích : Dễ đọc hơn, vì toán tử ở đầu dòng mới làm rõ ràng logic. Khi thêm toán tử mới thì dễ dàng căn chỉnh mà không cần sửa quá nhiều.

2.4. Quy tắc comment

  • Hạn chế dùng comment để giải thích nhưng đoạn code đơn giản, dễ hiểu, những sự thật hiển nhiên

  • Hãy xóa đoạn code đó đi nếu không dùng, đừng comment out đoạn code đó vì thực sự không cần thiết

  • Hãy comment với những nơi cần cảnh báo hậu quả

    Ví dụ: int maxRetries = 5; //Do not set maxRetries above 5, it may cause infinite loops!

  • Comment để làm rõ ý nghĩa của đoạn code nếu như logic của nó phức tạp

III. Kết luận

Việc tuân thủ các quy tắc về Coding convention là yếu tố để quan trọng giúp cho chúng ta viết code trở nên sạch, dễ hiểu và dễ bảo trì ^^. Việc này không những chỉ giúp cải thiện chất lượng phần mềm mà còn nâng cao hiệu suất của cả team 😄

Thông qua bài viết này, mong sẽ giúp ích cho các bạn hiểu hơn thêm về coding convention và một số quy tắc chung của nó.

XIN CHÂN THÀNH CẢM ƠN CÁC BẠN ĐÃ ĐÓN XEM. HẸN GẶP LẠI ♥️


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.