Đặt Tên Biến Chuẩn Ngay Từ Khi Bắt Đầu-Phần 2
Ở bài trước, mình đã nói về lý do cần đặt tên biến chuẩn và một số quy tắc đặt tên chuẩn cho một số biến khác nhau. Chung quy lại, đặt tên biến chuẩn giúp cho bạn dễ dàng kiểm tra, phát triển và bảo trì các đoạn code của mình. Hôm nay chúng ta sẽ đi sang 5 nguyên tắc còn lại nhé.
1. Các đối tượng (objects)
Các biến đối tượng đề cập đến một thể hiện của một lớp. Các lớp là các danh từ được viết bằng chữ cái đầu tiên viết hoa, như Person
, Account
, hoặc Task
. Tên biến đối tượng phải phù hợp với tên lớp liên quan (đối tượng person
là của lớp Person
, đối tượng account
của lớp Account
, v.v.). Bạn cũng có thể tự do sử dụng tính từ cho tên đối tượng (ví dụ: completedTask
). Điều quan trọng là phải giữ nguyên tên lớp là phần cuối cùng của tên đối tượng.
Chúng ta cũng nên để các lớp và các đối tượng ở danh từ ở dạng số ít để phân biệt chúng với các bộ sưu tập (mảng, danh sách và tập hợp). Nhưng có những trường hợp bạn muốn đặt tên cho đối tượng của mình ở dạng số nhiều thì sao? Ví dụ, trường hợp có một đối tượng options
làm tham số cuối cùng của hàm. Hoặc trong React, chúng ta gọi đối tượng chứa các thuộc tính cho các thành phần props
. Làm thế nào bạn có thể biết nếu một danh từ dạng số nhiều là một đối tượng hoặc một bộ sưu tập? Trong một bộ sưu tập, các item thường cùng loại. Nhưng trong một đối tượng, chúng có thể khác nhau. Mỗi option
trong options
có thể là một khác nhau và mỗi prop
trong props
cũng có thể có một loại khác nhau.
Nếu có thể, hãy cố gắng tránh sử dụng tên biến đối tượng mà có thể gây nhầm lẫn với tên biến cho một chuỗi hoặc một số. Ví dụ, thay vì đặt tên giá trị hoặc tên đối tượng, bạn có thể sử dụng valueObject
hoặc nameObject
.
// Typescript
interface Person { nameObject: NameObject, address: Address }
const { nameObject } = getPersonById(1234);
const fullName = `${nameObject.firstName} ${nameObject.lastName}`;
2. Các biến tuỳ chọn
Đặt tên các biến tùy chọn sẽ phụ thuộc vào ngôn ngữ lập trình và cách triển khai loại tùy chọn. Trong các ngôn ngữ mà bạn cần mở khóa loại tùy chọn, biến tùy chọn được bao bọc phải được thêm tiền tố và tên biến tùy chọn không được bao bọc thì không có tiền tố.
Trong Java, mình sử dụng optional<T>
và tên biến là possible<Something>
. Sau đó, mình có thể sử dụng các cấu trúc như thế này:
// Java
possibleLoggedInUser.ifPresent(loggedInUser -> loggedInUser.logout());
final User currentUser = possibleLoggedInUser.orElse(guestUser);
Trong JavaScript + Flow hoặc TypeScript và các ngôn ngữ khác nơi các loại tùy chọn được tạo bằng cách sử dụng bằng cách tập hợp các type, bạn thường không cần bất kỳ tiền tố nào cho các biến tùy chọn:
// Typescript
function addTaxToAmount(amount: number, discount?: number): number {
return 1.2 * (amount — ( discount ?? 0));
}
3. Đặt tên hàm tham số
Các hàm tham số hoạt động tương tự như các biến bên trong một hàm. Tuy nhiên, có hai trường hợp ngoại lệ: phương thức khởi tạo và phương thức setter. Với hai loại này, mình khuyên nên sử dụng tiền tố hoặc hậu tố cho một tên biến:
// Java
public Person(final Name newName, final Address newAddress) {
name = newName;
address = newAddress;
}
public void setName(final Name newName) {
name = newName;
}
Ngoài ra, bạn cũng có thể đặt thêm một dấu gạch dưới ở cuối tên biến, điều này cũng giúp nó dễ đọc hơn một chút:
// Java
public Person(final Name name_, final Address address_) {
name = name_;
address = address_;
}
public void setName(final Name name_) {
name = name_;
}
4. Các hằng bất biến
Các hằng số bất biến tĩnh là một trường hợp đặc biệt nên hãy tên cho các biến không sử dụng tất cả các chữ viết hoa như kiểu. Ví dụ: TOOLTIP_SHOW_DELAY_IN_MILLISECS
. Nếu hằng số tĩnh có thể thay đổi, hãy sử dụng quy ước đặt tên biến thông thường, tham khảo ở đây.
5. Quy tắc đặt tên chung
Tránh viết tắt tối nghĩa
Hãy cố gắng tránh viết tắt ít nhất có thể. Tuy nhiên, có nhiều chữ viết tắt thường được sử dụng, như Str
cho String
, Num
cho Number
, Prop
cho property
hoặc Val
cho Value
. Điều chúng ta cần đặc biệt cố gắng tránh là sử dụng các chữ viết tắt không quá phổ biến trừ khi tên nó quá dài.
Tránh những cái tên quá ngắn và vô nghĩa
Đấy là những cái tên quá ngắn không thực sự chỉ ra biến đó là về cái gì. Đừng sử dụng những tên biến kiểu i
hay k
, hãy sử dụng tên biến kiểu index
hoặc <Something>Index
. Ngoài ra, bạn cũng nên tạo thói quen mô tả rõ về biến hơn là đăng các tên đơn giản như num
, val
hoặc tmp
.
Kết
Tên biến là một phần rất nhỏ trong toàn bộ chương trình nhưng nếu bạn chăm chút cho nó ngay từ khi bắt đầu, code của bạn sẽ sạch và dễ hiểu hơn rất nhiều. Code sạch giúp cho việc đối chiếu và sửa lỗi sau này được thuận tiện hơn, vì vậy đừng cho phép bản thân dễ dãi với những điều nhỏ nhặt như vậy nhé.
Tham khảo medium.com