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

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

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...

HỌC KỲ CŨ – HÀNH TRÌNH MỚI, RTEP K2 BƯỚC VÀO GIAI ĐOẠN MỚI CỦA HÀNH TRÌNH CHINH PHỤC MỤC TIÊU “ĐẶT CHÂN ĐẾN...

Ngày 6/10/2022, Chương trình RTEP đã tổ chức Lễ tổng kết và trao học bổng tích lũy, khen thưởng...

OFFER ĐẦU TIÊN CỦA CHƯƠNG TRÌNH RTEP – CHẠM ĐẾN MỤC TIÊU ĐẶT CHÂN ĐẾN XỬ SỞ HOA ANH ĐÀO

Tháng 8 vừa qua, Chương trình đào tạo kỹ sư CNTT tài năng Việt Nhật (RTEP) nhận được tin...

Ở đây có Chương trình RTEP sẵn sàng tuyển sinh khóa K3

Trong chuỗi các hoạt động Rikkeisoft tham gia tại “Tuần lễ việc làm DTU 2022”, chương trình đào tạo...

Học kỳ mới đã tới, khai giảng lớp đào tạo tiếng Nhật IT thôi!

Ngày 1/3/2022, chương trình RTEP đã Khai giảng lớp Đào tạo tiếng Nhật IT dành cho các RTEP-er K1...

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

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...

Nét đặc trưng trong văn hóa chào hỏi của người Nhật Bản

Đối với người Nhật Bản, văn hóa chào hỏi chính là một nét văn hóa đặc trưng dần trở thành phong cách của mỗi...

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,...