Luật lệ con rắn (hay còn gọi là snake case hoặc snake_case) là cách viết các từ hoặc cụm từ ghép nhau bằng ký tự gạch dưới (_) và không có khoảng trắng. Chữ cái đầu tiên của mỗi thành phần viết thường, còn các chữ cái đầu của từ hoặc cụm từ có thể viết hoa hoặc viết thường như trong 'foo_bar' hay 'Hello_world'. Quy tắc này thường được áp dụng trong lập trình máy tính để đặt tên biến, tên hàm và đôi khi cả tên file.
Một nghiên cứu đã chỉ ra rằng người đọc có thể nhận biết nhanh hơn cụm từ viết theo luật lệ con rắn so với luật lệ lạc đà.
Lịch sử
Việc sử dụng dấu gạch dưới làm dấu phân cách từ trong các định danh trong ngôn ngữ lập trình đã tồn tại từ rất lâu, khoảng cuối những năm 1960. Trường hợp nổi bật nhất là ngôn ngữ C, được ghi nhận trong sách
Trên Usenet, thuật ngữ 'snake_case' lần đầu tiên xuất hiện khi Gavin Kistner sử dụng nó trong cộng đồng Ruby vào năm 2004:
Ngoài ra... các bạn *gọi* quy tắc đặt tên này là gì? snake_case? Tôi sẽ sử dụng thuật ngữ này nếu không ai phản đối.
Tuy nhiên, một cựu kỹ sư từ Intel, Jack Dahlgren, đã chia sẻ trên Quora rằng ông đã sử dụng thuật ngữ này trong nội bộ Intel (và có lẽ trong các cuộc trao đổi với kỹ sư Microsoft) từ năm 2002. Có thể thuật ngữ này đã được tạo ra độc lập trong cộng đồng lập trình viên.
Ví dụ về các ngôn ngữ sử dụng quy tắc con rắn
- OCaml, sử dụng cho tên giá trị, kiểu và mô-đun
- ABAP
- C, cho một số tên kiểu trong thư viện chuẩn, nhưng không dùng cho tên hàm.
- C++, dùng cho thư viện chuẩn và Boost
- Erlang, sử dụng cho tên hàm
- GDScript, cho tên biến và hàm
- Java, cho các hằng số cuối tĩnh (static final) và giá trị enum.
- Perl, cho các biến từ vựng và các subroutine
- Python, cho tên biến, tên hàm, tên phương thức và tên module hoặc gói (như tập tin)
- R, sử dụng cho tên biến, tên hàm, tên tham số, đặc biệt trong kiểu tidyverse
- Ruby, cho tên biến và phương thức
- Rust, cho các biến tĩnh và hằng số.
- Elixir, sử dụng cho tên nguyên tử, biến và hàm
- Eiffel, cho tên lớp và tính năng