Đặt tên biến như thế nào cho hiệu quả?

Bài viết gần đây

RTEP K1 VÀ NHỮNG TRẢI NGHIỆM THÚ VỊ Ở RIKKEI NAGOYA – NHẬT BẢN

Tiếp nối với hành trình chinh phục xứ sở hoa anh đào, vừa qua Chương trình RTEP tiếp tục...

RTEP K2 nghĩ gì sau 2 tuần ON-JOB-TRAINING tại văn phòng Rikkeisoft Đà Nẵng

Ngày 20/2/2023, học viên K2 chính thức bước vào giai đoạn cuối của lộ trình RTEP- Học kỳ On-Job-Training...

RTEP K2 tổng kết Lớp Kaiwa Nền Tảng. Hoàn thành bước tiến mới cho hành trình chinh phục tiếng Nhật!

Trong hành trình tiến đến mục tiêu đặt chân đến xứ sở hoa anh đào, chinh phục tiếng Nhật...

RTEP – ERS chuẩn bị gì trước thềm phỏng vấn Onsite Nhật?

Tháng 10/2022, Chương trình RTEP vui mừng nhận tin những học viên đầu tiên sang Nhật để làm việc...

Học viên RTEP K1 – Hành trình mới của cô nàng Diệu Hiền trên đất nước Nhật Bản

Cuối tháng 10 này, Chương trình đào tạo kỹ sư tài năng Việt Nhật (RTEP) đã thành công đưa...

Việc đặt tên hiện diện ở khắp mọi nơi trong quá trình phát triển phần mềm, đặt tên cho các biến, hàm, tham số, lớp,… đặt tên cho các tập tin jar, các tập tin war và ear. Với tần suất như vậy, 10 nguyên tắc cơ bản sau đây sẽ giúp bạn có thể đặt tên hiệu quả, dễ dàng hơn: 

1. Sử dụng tên có mục đích

Tên của một variable (biến), function (hàm) hoặc class (lớp), nên trả lời được tất cả các câu hỏi sau:

  • Tại sao nó tồn tại?
  • Nó làm nhiệm vụ gì?
  • Nó được sử dụng như thế nào?

Xem xét hai ví dụ sau:

Nếu bạn phải bổ sung comment để làm rõ ý nghĩa, thì tên đó không tiết lộ được ý định của nó.

2. Tránh thông tin sai lệch

Cẩn thận với việc sử dụng tên chỉ có một chút ít khác biệt. Mất bao lâu để chúng ta nhận ra sự khác biệt giữa YZControllerForEfficientHandlingOfStringsXYZControllerForEfficientStorageOfStrings?

Với những IDE ngày nay, chúng đều cung cấp chức năng tự động điền code (automatic code completion). Sẽ rất hữu ích nếu các tên được sắp xếp theo thứ tự abc và có sự khác biệt rõ ràng, bởi vì một Developer có xu hướng chọn object theo tên hơn là để ý mô tả của nó.

3. Tạo sự khác biệt có ý nghĩa

Ba điều nên tránh:

  • Bổ sung dãy số vào tên
  • Thêm các từ ngữ gây mất tập trung
  • Đặt tên theo dãy số (a1, a2, .. aN) trái ngược với nguyên tắc đặt tên có mục đích.

Từ ngữ gây mất tập trung tạo ra sự phân biệt vô nghĩa. Bạn đang có một class là Product. Bạn có thêm một class khác là ProductInfo hoặc ProductData, các class đã được đặt tên khác nhau nhưng lại không làm cho ý nghĩa khác biệt gì. Từ variable không bao giờ nên xuất hiện trong một tên biến. Cũng như từ table không bao giờ nên xuất hiện trong tên bảng của database.

4. Tên có thể phát âm được

Lưu ý hai biến trên đều có cùng ý nghĩa, nhưng biến nào dễ đọc và rõ ràng hơn?

5. Tên dễ dàng tìm kiếm

Nếu một biến hoặc hằng số được sử dụng ở nhiều nơi, thì bắt buộc phải đặt cho nó một cái tên dễ dàng tìm kiếm. Một lần nữa hãy so sánh hai đoạn code sau:

Đặt tên biến theo cách này có thể làm cho hàm dài hơn, nhưng hãy xem xét việc tìm kiếm WORK_DAYS_PER_WEEK sẽ dễ dàng hơn rất nhiều so với việc tìm tất cả các vị trí nơi số “5” được sử dụng.

6. Tên Class

Các Class (lớp) và Object (đối tượng) nên có tên là danh từ hoặc cụm danh từ, ví dụ: Customer, WikiPage, Account, và AddressParser.

7. Tên Method

Các Method (phương thức) nên có tên động từ hoặc cụm động từ như: postPayment(), deletePage() hoặc savePage(). Ngoài ra, sử dụng các method cũng là một cách tốt để miêu tả các tham số trong Constructor.

8. Chọn một từ cho mỗi khái niệm 

Chỉ chọn một từ cho một khái niệm và luôn gắn bó với nó. Chẳng hạn, thật khó hiểu khi retrieve và get là những method có chức năng tương tự nhau lại được dùng la liệt ở những class khác nhau. Làm thế nào để bạn nhớ tên method nào đi với class nào? Vì vậy, hãy luôn nhất quán.

9. Khi nào là vấn đề? Và đâu là giải pháp?

Hãy nhớ rằng những người đọc code của bạn sẽ là những Lập trình viên (dev). Vì vậy, cứ tự nhiên khi sử dụng các thuật ngữ khoa học máy tính (CS), tên thuật toán, tên mẫu, thuật ngữ toán học, v.v.

Phân loại khái niệm nào là giải pháp, khái niệm nào là vấn đề là một phần công việc của một lập trình viên và nhà thiết kế giỏi. Code có liên quan nhiều tới vấn đề nên có tên được rút ra từ vấn đề đó.

10. Interface và implementations

Giả sử như bạn đang có một Interface miêu tả Shape. Bạn nên đặt tên cho chúng là gì? IShape hay Shape? Nếu tôi phải thêm ký hiệu cho Interface hay Implementations, tôi sẽ chọn Implementations: ShapeImpl

Hy vọng các quy tắc đặt tên trên giúp tăng cường tính hiệu quả và cải thiện khả năng đọc code của bạn.

 

Bài viết dựa trên cuốn Clean Code – Robert C. Martin Series

Nguồn Viblo 

Góc Nhật Bản

Bỏ túi 100 thuật ngữ tiếng Nhật ngành IT dành cho kỹ sư phần mềm

Kỹ sư công nghệ thông tin là một công việc vô cùng hấp dẫn ở Nhật Bản hiện nay, bởi mức lương trung bình...

Những điều cần biết về kì thi năng lực tiếng Nhật JLPT

JLPT là gì? Kỳ thi năng lực tiếng Nhật có tên tiếng Nhật 日本語能力試験(にほんごのうりょくしけん) tiếng Anh: "Japanese Language Proficiency Test" - JLPT) là kì...

Hanami – Độc đáo lễ hội hoa anh đào Nhật Bản

Hoa anh đào (桜, sakura) được xem như là quốc hoa (không chính thức) của đất nước mặt trời mọc. Hàng năm, các ngôi...

Bí quyết đánh đổ bài thi JLPT

Bất kỳ ai khi theo học tiếng Nhật Nhật cũng biết về bài thi JLPT. Đây là bài thi năng lực tiếng Nhật được...

Truyền nghề

THẾ NÀO LÀ MỘT TESTER XUẤT SẮC?

Công việc chính của một Tester là tìm kiếm những lỗi hệ thống, thẩm định xem hệ thống có đáp ứng được các yêu...

BÍ KÍP “NHỜ VẢ” CHO CÁC LẬP TRÌNH VIÊN ÍT KINH NGHIỆM TẠI NƠI CÔNG SỞ

Khi mới chập chững làm quen với công việc của một lập trình viên, chắc chắn bạn sẽ thường xuyên gặp nhiều vướng mắc...

DÙNG EMAIL ĐỈNH CAO, ĐỪNG MẮC NHỮNG SAI LẦM SAU

Hiện nay, email vẫn là phương tiện chủ yếu giúp chúng ta kết nối với mọi người, trong cả việc công lẫn việc cá...

19 Sai Lầm Của Lập Trình Viên

Sưu tầm nhiều sách, tải nhiều video học lập trình nhưng bao giờ đọc và học nghiêm túc Hiện nay, sách Ebook quá nhiều,...