Coding Standards là gì – đây chắc hẳn là câu hỏi được đặt ra bởi nhiều coder mới vào nghề. Công việc lập trình luôn phức tạp và đòi hỏi lập trình viên phải làm việc với khối lượng dữ liệu vô cùng lớn. Do đó việc viết code cần tuân theo các quy chuẩn chung để đảm bảo các khối code được trình bày một cách dễ nhìn, dễ đọc. Những quy chuẩn về cách trình bày này chính là Coding Standards.
Coding Standards là gì?
Coding Standards còn có những thuật ngữ gần như tương đương là Coding Convention hay Code Convention. Vậy Code Convention là gì? Thuật ngữ này được dịch ra tiếng Việt là “Quy chuẩn mã nguồn”. Đây là bộ quy tắc chung bao gồm những chuẩn mực về cách viết và trình bày code dành cho lập trình viên khi phát triển một chương trình nào đó. Tùy vào từng dự án mà tiêu chuẩn viết code có thể khác nhau.
Nhìn chung một bộ Coding Standards sẽ bao gồm những quy tắc sau:
- Cách đặt tên biến, hàm, hằng, class…
- Cách đặt tab và khoảng trắng
- Khai báo và sử dụng biến
- Quy tắc về bình luận
- Độ dài tối đa của mỗi dòng code
- …
Những ưu và nhược điểm của Coding Standards là gì?
Ưu điểm
Việc xây dựng và áp dụng Coding Standards mang lại nhiều lợi ích như:
- Giúp các lập trình viên trình bày các khối code một cách chuyên nghiệp và hiểu rõ chuyện gì đang diễn ra với code của mình.
- Dễ dàng tìm kiếm và khắc phục những lỗi sai trong code.
- Những lập trình viên newbie có thể làm quen và bắt nhịp một cách nhanh chóng, tránh mắc đi mắc lại cùng một sai lầm.
- Tránh tình trạng mỗi người một phong cách viết code khi làm việc nhóm dẫn đến xung đột.
- Giúp người khác dễ dàng hiểu mã nguồn của bạn.
Nhược điểm
- Tiêu chuẩn trong viết code có thể làm giảm sự sáng tạo.
- Dễ bị bỏ quên trong quá trình lập trình viên viết code.
Thực tế cho thấy, các dự án có nhiều thành viên cùng tham gia sẽ diễn ra suôn sẻ hơn nếu được quy định Coding Standards ngay từ đầu. Tuy nhiên tiêu chuẩn viết code không hẳn là chìa khóa để đạt được thành công. Thậm chí trong một số trường hợp, nếu áp dụng quy chuẩn một cách gượng ép, gò bó sẽ không mang lại hiệu quả gì, thậm chí còn gây phản tác dụng.
Xem thêm: Cách dùng lệnh CASE trong SQL Server với lệnh SELECT và UPDATE
Các quy chuẩn có trong Coding Standards là gì?
Trong Coding Standards, các quy chuẩn được chia thành hai loại. Đó là chuẩn hình thức và chuẩn ngữ nghĩa:
Chuẩn hình thức
Được hiểu là những quy tắc về định dạng mã nguồn, bao gồm:
- Thụt đầu dòng
- Sử dụng khoảng trắng
- Đóng ngoặc, mở ngoặc
- Đặt tên lớp, thuộc tính, phương thức
Chuẩn ngữ nghĩa
Đây là những quy chuẩn xoay quanh hoạt động thực thi mã nguồn, đó là:
- Biểu thức so sánh
- Cấu trúc điều khiển : while, for, if
- Khai báo và sử dụng biến
- Cài đặt phương thức
Xem thêm: Top 5 website kiểm tra tốc độ đánh máy và luyện gõ 10 ngón tốt nhất
Bộ quy tắc Coding Standards trong Java đầy đủ nhất
Quy tắc về khoảng trắng (White Space)
Quy tắc về khoảng trắng, dòng trống, xuống dòng hay thụt đầu dòng giúp hệ thống hóa các dòng code để người đọc dễ hiểu hơn.
Thụt đầu dòng
- Lập trình viên cần đặt ra quy chuẩn thụt đầu dầu đối với toàn bộ mã nguồn khi viết chương trình.
- 1 tab sẽ tương ứng với 1 đơn vị thụt đầu dòng
- Hoặc cũng có thể quy định 5 khoảng trắng tương ứng với 1 đơn vị thụt đầu dòng
- Đến dòng code thứ 20 thì nhấn tab 2 lần để tạo 2 đơn vị thụt đầu dòng
- Hai dòng code cách nhau 1 bậc thì sẽ có khoảng cách bằng 1 đơn vị thụt đầu dòng
Vậy tại sao lại dùng tab mà không phải khoảng trắng. Đó là bởi việc dùng phím tab sẽ giúp bạn đỡ mất thời gian nhập khoảng trắng nhiều lần. Bên cạnh đó, bạn cũng có thể tùy ý thiết lập 1 đơn vị tab bằng số lượng khoảng trắng tùy ý.
Dòng trống
- Những đoạn mã nguồn có mối liên hệ với nhau, tức là cùng thực hiện một nhiệm vụ sẽ được gộp chung lại thành một khối. Như vậy, các đoạn code này sẽ không có dòng trống ở giữa.
- Hai khối code khác nhau sẽ có khoảng cách tối thiểu là 1 dòng trống.
- Khoảng trắng
- Khoảng trắng cần được đặt sau các dấu chấm phẩy và dấu phẩy
- Xung quanh các toán tử phải có khoảng trắng
Quy tắc về dấu ngoặc
Ngoặc tròn
Dấu ngoặc tròn () trong Coding Convention Java được dùng để giúp người đọc hiểu được mục đích của đoạn code là gì. Đồng thời đảm bảo rằng trình biên dịch sẽ thực hiện đúng theo ý tưởng của lập trình viên.
Dấu ngoặc nhọn
Theo tiêu chuẩn lập trình của Java thì dấu ngoặc nhọn “{“ phải nằm cạnh các cấu trúc if, while, for… Tuy nhiên khi lập trình với C# thì quy tắc viết code sẽ là dấu ngoặc nhọn “{“ sẽ nằm ở dòng mới.
Quy tắc về bình luận
- Các comment không nên lặp lại nội dung của code mà không cung cấp thông tin bổ sung. Những bình luận thừa sẽ khiến code trở nên dài dòng, gây mất thời gian của người đọc.
- Bình luận càng đơn giản, dễ hiểu càng tốt.
- Trong trường hợp sử dụng nhiều endline comment đối với các dòng code nằm liên tiếp nhau thì phải căn lề các bình luận bằng nhau.
- Nên comment ngay khi cần, không nên viết xong hết code rồi mới quay lại để viết bình luận.
- Chỉ nên viết comment khi đoạn code quá phức tạp và cần được giải thích rõ ràng hơn.
Quy tắc đặt tên
Quy tắc viết hoa
- Đối với cú pháp lạc đà (camelCase): Từ đầu tiên của cụm sẽ được viết thường, sau đó ký tự đầu tiên của các từ tiếp theo sẽ viết in hoa. Cú pháp này thường được sử dụng khi viết tên phương thức, tên biến, các hàm. Ví dụ: getOnTop(), runLow(), lastName, firstName…
- Đối với cú pháp Pascal (PascalCase): Cú pháp này có các ký tự đầu tiên của từ trong cụm được viết hoa toàn bộ. Cú pháp Pascal được dùng với tên class và đôi khi cả tên biến. Ví dụ như class MickeyMouse, class Mice…
- Đối với cú pháp con rắn (snake_case): Khi áp dụng cú pháp con rắn, bạn sẽ thấy các chữ cái đều được viết thường nhưng được phân tách bởi dấu gạch dưới “_”. Đôi khi các chữ cái sẽ được viết in hoa toàn bộ đối với một số ngôn ngữ và một số trường hợp nhất định. Cú pháp con rắn thường được dùng để đặt tên chương trình hoặc tên hằng. Ví dụ: final_final1_final2, MAX_SLECT…
Đặt tên class, abstract class, interface
- Theo Coding Convention Javascript, nên sử dụng danh từ, cụm danh từ để đặt tên tên class
- Khi đặt tên bạn nên lựa chọn những từ tương ứng với chức năng, tránh đặt tên không có ý nghĩa hoặc chung chung
- Không nên đặt tên viết tắt bởi sẽ gây khó hiểu khi đọc lại
- Không đặt tiền tố trước tên lớp
Đặt tên phương thức
- Đặt tên phương thức bằng cú pháp camelCase. Ví dụ: xepLoai
- Tên phương thức phải cho biết phương thức đó có chức năng gì. Ví dụ: tinhDiemTrungBinh
- Tránh lựa chọn các tên phương thức không rõ nghĩa, mơ hồ. Ví dụ: tinh, hienThi
- Không sử dụng các chữ số để phân biệt tên phương thức. Ví dụ: tinhDiemTrungBinh1, tinhDiemTrungBinh2…
Đặt tên cho biến
- Tên biến được đặt bằng cú pháp camelCase. Ví dụ: String hoTen, int diemTrungBinh…
- Không sử dụng tiền tố trước tên biến. Ví dụ: thay vì viết String strAddress thì bạn phải viết là String address
- Tên biến phải mang tính gợi nhớ, không nên viết tắt. Ví dụ: không nên viết là String addr
- Tránh đặt tên biến bằng 1 chữ cái duy nhất như a, b, c… trừ khi sử dụng các biến đếm như I, j, k
- Tên biến nên có độ dài vừa phải, không nên quá ngắn khiến cho ý nghĩa không rõ ràng hoặc quá dài khiến chương trình bị rối
- Khi đặt tên cho các biến final toàn cục, static, enum phải viết hoa toàn bộ các từ, mỗi từ cách nhau bằng dấu gạch dưới “_”. Ví dụ: static int MIN_WIDTH = 4, static float PI = 3.14f…
- Biến final cục bộ có cách đặt tên giống với các biến thông thường
Đặt tên cho package
Tên package sử dụng toàn bộ các ký tự chữ thường, mỗi từ cách nhau bởi dấu chấm “.”. Ví dụ: không viết com.example.deepSpace mà phải viết là com.example.deepspace.
Quy tắc viết phương thức
- Khi một đoạn code lặp lại nhiều lần trong chương trình thì các đoạn code đó nên được gom lại thành một phương thức. Như vậy sẽ giúp tiết kiệm thời gian viết code cũng như khi cần sửa lỗi hay bảo trì.
- Một phương thức chứa nhiều đoạn code phức tạp thì lập trình viên nên tách đoạn code phức tạp thành 1 phương thức độc lập. Điều này sẽ cho phép bạn theo dõi và debug một cách thuận tiện.
- Mỗi phương thức chỉ được phép đảm nhiệm và thực thi một chức năng nhất định.
- Theo cuốn Code Complete phiên bản thứ II xuất bản năm 2004 của Steve MacConnell, ở chương 7.4 có viết “Các nghiên cứu cho thấy một phương thức thường có độ dài từ 50 – 150 dòng code là phù hợp”.
Ví dụ trong trường hợp sau đây:
Trong ví dụ trên, ta thấy có 2 phương thức tinhVaLuuDiemDiem và tinhVaHienThiDiem:
- Code tinhDiem bị trùng lặp, do đó mỗi khi cần điều chỉnh thì lập trình viên sẽ phải sửa đổi ở hai chỗ
- Trong trường hợp sử dụng 1 phương thức cho 2 mục đích: nếu như các code lưu điểm, hiển thị hay tính điểm có độ phức tạp cao thì lập trình viên sẽ gặp nhiều khó khăn trong việc đọc hiểu và bảo trì
=> Nên chia tách ra thành các phương thức riêng đó là luuDiem, hienThiDiem và tinhDiem.
=> Phương thức getHoTen chỉ cần có họ và tên, không phải dùng thêm tham số chữ lót.
Quy tắc sử dụng biến
- Không nên dùng các lệnh if, for, while lồng nhau quá 3 bậc
- Tránh việc khai báo biến nhưng lại không sử dụng, điều này sẽ khiến cho các trình biên dịch gửi cảnh báo trong quá trình compile.
Quy tắc Import thư viện sử dụng
Chỉ nên Import thư viện cần thiết phải sử dụng, không import toàn bộ thư viện.
Ví dụ: Thay vì viết import java.util.* thì bạn nên viết import java.util.List
Hy vọng rằng bài viết này đã giúp bạn hiểu hơn về Coding Standards là gì và những quy chuẩn khi viết code trong Java. Một khi đã áp dụng đúng và thành thạo các tiêu chuẩn coding, bạn sẽ thấy các lỗi sai được giảm thiểu đáng kể. Đồng thời việc bảo trì và sửa lỗi cho chương trình cũng sẽ trở nên đơn giản hơn rất nhiều.
Có thể bạn cần: Hướng dẫn tải và cài đặt Office 365 full crack nhanh chóng
Ban biên tập: Ecci.comm.vn
Trả lời