Trong khoa học máy tính, quy ước đặt tên (tiếng Anh: naming convention) là một tập hợp các quy tắc để chọn chuỗi kí tự được dùng cho các định danh biểu thị các biến, kiểu, hàm, và các thực thể khác trong mã nguồn và tài liệu.
Lí do sử dụng quy ước đặt tên (thay vì để lập trình viên chọn bất kì chuỗi kí tự nào) bao gồm:
Sự lựa chọn của quy ước đặt tên có thể là một vấn đề gây tranh cãi lớn, với các phe phái mà mỗi bên lại cho họ là tốt nhất và những bên khác là kém hơn. Thông thường, đây được cho là vấn đề giáo điều.[2] Nhiều công ty tự thiết lập các quy ước riêng của họ.
Một số lợi ích tiềm năng có thể đạt được khi áp dụng quy ước đặt tên bao gồm:
Lựa chọn các quy ước đặt tên (và mức độ thực thi) thường là một vấn đề gây tranh cãi, với các phe phái giữ quan điểm của họ là tốt nhất và những cái khác là tệ nhất. Hơn thế, kể cả với các quy ước đặt tên đã biết và được xác định rõ ràng, một số tổ chức có thể không tuân thủ sự nhất quán, gây ra sự thiếu nhất quán và nhầm lẫn. Những thử thách này có thể trở nên trầm trọng nếu các quy tắc quy ước đặt tên không nhất quán nội bộ, tùy tiện, khó nhớ, hoặc có thể được xem là gánh nặng hơn là có lợi.
Các mã định danh được lựa chọn tốt giúp các nhà phát triển và nhà phân tích dễ dàng hơn một cách đáng kể trong việc hiểu rõ hệ thống đang làm gì và cách sửa chửa hoặc mở rộng mã nguồn để áp dụng cho các nhu cầu mới.
Ví dụ:
a = b * c;
Mặc dù cú pháp trên là đúng, nhưng mục đích của nó không rõ ràng. Thay vào đó là sử dụng:
weekly_pay = hours_worked * hourly_pay_rate;
ngụ ý dự định và ý nghĩa của mã nguồn, ít nhất là những người quen thuộc với ngữ cảnh của câu lệnh.
Định dạng | Tên gọi |
---|---|
twowords
|
flat case[3][4] |
TWOWORDS
|
upper flat case[3] |
twoWords
|
(lower) camelCase, dromedaryCase |
TwoWords
|
PascalCase, UpperCamelCase, StudlyCase[5] |
two_words
|
snake_case, pothole_case |
TWO_WORDS
|
SCREAMING_SNAKE_CASE, MACRO_CASE, CONSTANT_CASE |
two_Words
|
camel_Snake_Case |
Two_Words
|
Pascal_Snake_Case |
two-words
|
kebab-case, dash-case, lisp-case |
two|words
|
doner|case |
TWO-WORDS
|
TRAIN-CASE, COBOL-CASE, SCREAMING-KEBAB-CASE |
Two-Words
|
Train-Case[3], HTTP-Header-Case[6] |