Mục Lục
Tổng quan
Naming convention (quy tắc đặt tên) là một hệ thống quy tắc và quy chuẩn được thiết lập để đặt tên cho các thành phần khác nhau trong một dự án phần mềm hoặc trong lĩnh vực khác nhau của công nghiệp. Mục tiêu của việc áp dụng naming convention là làm cho mã nguồn hoặc các thành phần khác dễ đọc, dễ hiểu, dễ duy trì và thậm chí có thể tái sử dụng. Dưới đây là một số quy tắc phổ biến trong naming convention:
- Camel Case và Pascal Case:
- Camel Case: Bắt đầu bằng chữ thường, sau đó mỗi từ tiếp theo bắt đầu bằng chữ in hoa (ví dụ:
myVariable
,calculateTotalAmount
). - Pascal Case: Tương tự như Camel Case, nhưng bắt đầu bằng chữ in hoa (ví dụ:
MyClass
,CalculateTotalAmount
).
- Camel Case: Bắt đầu bằng chữ thường, sau đó mỗi từ tiếp theo bắt đầu bằng chữ in hoa (ví dụ:
- Snake Case:
- Tất cả các từ được viết thường và được ngăn cách bằng dấu gạch dưới (ví dụ:
my_variable
,calculate_total_amount
).
- Tất cả các từ được viết thường và được ngăn cách bằng dấu gạch dưới (ví dụ:
- Ký tự tiền tố và hậu tố:
- Sử dụng các tiền tố (prefix) hoặc hậu tố (suffix) để chỉ rõ loại biến hoặc hàm. Ví dụ,
strName
cho chuỗi,intCount
cho số nguyên.
- Sử dụng các tiền tố (prefix) hoặc hậu tố (suffix) để chỉ rõ loại biến hoặc hàm. Ví dụ,
- Đặt tên rõ ràng và mô tả:
- Đặt tên sao cho nó mô tả chức năng hoặc ý nghĩa của biến, hàm, lớp, v.v.
- Tránh các tên viết tắt không rõ ràng:
- Tránh sử dụng viết tắt mà không có ý nghĩa rõ ràng, trừ khi nó là một chuẩn được chấp nhận trong ngữ cảnh cụ thể.
- Duy trì đồng nhất:
- Tuân theo quy tắc đặt tên đã chọn và duy trì sự đồng nhất trong toàn bộ dự án.
- Tránh tên quá dài:
- Tránh đặt tên quá dài và phức tạp, nhưng đảm bảo rằng nó vẫn đủ mô tả.
- Tuân thủ quy tắc ngôn ngữ cụ thể:
- Tuân thủ quy tắc đặt tên của ngôn ngữ lập trình cụ thể mà bạn đang sử dụng.
Ví dụ cho một số quy tắc trên, trong Python:
# Camel Case
myVariable = 10
calculateTotalAmount = 0
# Snake Case
my_variable = 10
calculate_total_amount = 0
# Pascal Case
MyClass = ...
CalculateTotalAmount = ...
Tùy thuộc vào ngôn ngữ lập trình và ngữ cảnh cụ thể, có thể có các quy tắc khác nhau. Quan trọng nhất là duy trì sự rõ ràng và đồng nhất trong dự án của bạn.
Các loại Naming Convention
Có nhiều loại naming convention được sử dụng trong ngành công nghiệp phần mềm và lập trình. Dưới đây là một số loại phổ biến:
- Camel Case và Pascal Case:
- Camel Case: Bắt đầu bằng chữ thường, sau đó mỗi từ tiếp theo bắt đầu bằng chữ in hoa (ví dụ:
myVariable
,calculateTotalAmount
). - Pascal Case: Tương tự như Camel Case, nhưng bắt đầu bằng chữ in hoa (ví dụ:
MyClass
,CalculateTotalAmount
).
- Camel Case: Bắt đầu bằng chữ thường, sau đó mỗi từ tiếp theo bắt đầu bằng chữ in hoa (ví dụ:
- Snake Case:
- Tất cả các từ được viết thường và được ngăn cách bằng dấu gạch dưới (ví dụ:
my_variable
,calculate_total_amount
).
- Tất cả các từ được viết thường và được ngăn cách bằng dấu gạch dưới (ví dụ:
- Kebab Case:
- Tất cả các từ được viết thường và được ngăn cách bằng dấu gạch ngang (ví dụ:
my-variable
,calculate-total-amount
). Thường được sử dụng trong URLs hoặc các tên tệp tin trên các hệ thống hỗ trợ dấu gạch ngang.
- Tất cả các từ được viết thường và được ngăn cách bằng dấu gạch ngang (ví dụ:
- Hungarian Notation:
- Thêm tiền tố cho biến để chỉ định kiểu dữ liệu của nó (ví dụ:
strName
cho chuỗi,intCount
cho số nguyên). Tuy nhiên, loại naming convention này ít được sử dụng trong các ngôn ngữ lập trình hiện đại.
- Thêm tiền tố cho biến để chỉ định kiểu dữ liệu của nó (ví dụ:
- Abbreviations and Acronyms:
- Sử dụng các viết tắt hoặc chữ viết tắt để tạo tên cho biến, hàm, lớp, v.v. (ví dụ:
getUserInfo()
,HTMLParser
).
- Sử dụng các viết tắt hoặc chữ viết tắt để tạo tên cho biến, hàm, lớp, v.v. (ví dụ:
- Underscore Prefix/Suffix:
- Sử dụng tiền tố hoặc hậu tố gạch dưới để chỉ định một ý nghĩa đặc biệt cho biến hoặc hàm (ví dụ:
_privateVariable
,calculateTotalAmount_()
).
- Sử dụng tiền tố hoặc hậu tố gạch dưới để chỉ định một ý nghĩa đặc biệt cho biến hoặc hàm (ví dụ:
- Screaming Snake Case:
- Tất cả các chữ viết hoa và được ngăn cách bằng dấu gạch dưới (ví dụ:
CONSTANT_VALUE
,MAX_COUNT
).
- Tất cả các chữ viết hoa và được ngăn cách bằng dấu gạch dưới (ví dụ:
- Domain-Specific Naming Conventions:
- Một số lĩnh vực hoặc ngôn ngữ có các naming convention riêng biệt, chẳng hạn như JavaBeans naming convention trong Java, where methods are named like
getPropertyName()
andsetPropertyName()
.
- Một số lĩnh vực hoặc ngôn ngữ có các naming convention riêng biệt, chẳng hạn như JavaBeans naming convention trong Java, where methods are named like
- Semantic Naming:
- Đặt tên dựa trên ý nghĩa chức năng hoặc mục đích của biến, hàm, lớp, v.v. (ví dụ:
calculateTotalAmount()
,userProfile
).
- Đặt tên dựa trên ý nghĩa chức năng hoặc mục đích của biến, hàm, lớp, v.v. (ví dụ:
- Version Numbering:
- Đặt tên biến hoặc hàm dựa trên số phiên bản (ví dụ:
calculateTotalAmount_v2()
).
- Đặt tên biến hoặc hàm dựa trên số phiên bản (ví dụ:
Lựa chọn naming convention thường phụ thuộc vào ngôn ngữ lập trình, quy mô của dự án, và các hướng dẫn của cộng đồng phần mềm. Quan trọng nhất là duy trì sự đồng nhất trong toàn bộ dự án để làm cho mã nguồn dễ đọc và duy trì.
Các cách đặt tên trong các ngôn ngữ lập trình phổ biến nhất
Dưới đây là một số quy tắc đặt tên thông thường trong một số ngôn ngữ lập trình phổ biến:
1. Java:
- Class Names (Tên lớp): Pascal Case (ví dụ:
MyClass
). - Method Names (Tên phương thức): Camel Case (ví dụ:
calculateTotalAmount()
). - Variable Names (Tên biến): Camel Case (ví dụ:
totalAmount
). - Constants (Hằng số): Screaming Snake Case (ví dụ:
MAX_VALUE
). - Packages: Tên gói nên là chữ thường, có thể sử dụng dấu gạch ngang cho sự đọc dễ dàng (ví dụ:
com.example.myproject
).
2. Python:
- Class Names (Tên lớp): Pascal Case (ví dụ:
MyClass
). - Function/Method Names (Tên hàm/phương thức): Snake Case (ví dụ:
calculate_total_amount()
). - Variable Names (Tên biến): Snake Case (ví dụ:
total_amount
). - Constants (Hằng số): Upper Snake Case (ví dụ:
MAX_VALUE
). - Module Names (Tên module): Tên ngắn, chữ thường, có thể sử dụng gạch dưới (ví dụ:
my_module
).
3. JavaScript/TypeScript:
- Class Names (Tên lớp): Pascal Case (ví dụ:
MyClass
). - Function/Method Names (Tên hàm/phương thức): Camel Case (ví dụ:
calculateTotalAmount()
). - Variable Names (Tên biến): Camel Case (ví dụ:
totalAmount
). - Constants (Hằng số): Upper Snake Case (ví dụ:
MAX_VALUE
).
4. C#:
- Class Names (Tên lớp): Pascal Case (ví dụ:
MyClass
). - Method Names (Tên phương thức): Pascal Case (ví dụ:
CalculateTotalAmount()
). - Variable Names (Tên biến): Camel Case (ví dụ:
totalAmount
). - Constants (Hằng số): Pascal Case (ví dụ:
MAX_VALUE
).
5. C++:
- Class Names (Tên lớp): Pascal Case (tương tự như C#).
- Function/Method Names (Tên hàm/phương thức): Camel Case (tương tự như C#).
- Variable Names (Tên biến): Camel Case (tương tự như C#).
- Constants (Hằng số): Upper Snake Case (tương tự như C#).
6. Ruby:
- Class Names (Tên lớp): Pascal Case (ví dụ:
MyClass
). - Method Names (Tên phương thức): Snake Case (ví dụ:
calculate_total_amount
). - Variable Names (Tên biến): Snake Case (ví dụ:
total_amount
). - Constants (Hằng số): Upper Snake Case (ví dụ:
MAX_VALUE
).
7. PHP:
- Class Names (Tên lớp): Pascal Case (ví dụ:
MyClass
). - Function/Method Names (Tên hàm/phương thức): Camel Case (ví dụ:
calculateTotalAmount()
). - Variable Names (Tên biến): Camel Case (ví dụ:
totalAmount
). - Constants (Hằng số): Upper Snake Case (ví dụ:
MAX_VALUE
).
Lưu ý:
- Các quy tắc có thể thay đổi tùy thuộc vào dự án và quy mô của mã nguồn.
- Tuân thủ quy tắc đặt tên giúp mã nguồn dễ đọc và duy trì, cũng như làm cho mã nguồn tương thích với cộng đồng lập trình.
Xin chào,
Bài viết này sử dụng AI ChatGPT để viết sau đó được lựa chọn, biên tập lại nội dung, chỉ một phần nhỏ các bài là tôi tự viết. Nội dung thể hiện ý chí cá nhân về các vấn đề, giải pháp. Tôi lưu tại website này để học, tra cứu và chia sẻ.
Tôi là Minh, sống tại Hà Nội, kỹ sư phần mềm với hơn 20 năm kinh nghiệm. Các ngôn ngữ yêu thích của tôi là Swift, Objective-C, Java, Kotlin, .NET, HTML, JavaScript, CSS, Bootstrap, jQuery, AngularJS, Angular…
Các bạn có thể tải app của tôi trên App Store hoặc Google Play:
QuestionBank-Ôn thi vào 10: phiên bản iOS, phiên bản Android
TypingTest by QuestionBank: phiên bản iOS, phiên bản Android
Xin cảm ơn,
Minh