Clean code – Tất cả từ một cái tên
Bài viết được sự cho phép của tác giả Kiên Nguyễn
Thông thường những bạn mới ra trường, thường những năm đầu code rầm rầm. Nếu được hướng dẫn bởi Senior thì còn được chỉ dạy về Clean code. Còn lại thì đa phần chưa quan tâm gì mấy tới clean code, hay tới design pattern, cứ code chạy là được.
Làm khoảng 1,2 năm thì bắt đầu có ý thức hơn, tìm hiểu về clean code để áp dụng. Nhưng đôi khi lại nghĩ clean code là cái gì đó phức tạp với các đoạn code dài loằng ngoằng, thuật toán phức tạp.
Thực tế không phải như vậy, clean ở đây đôi khi chỉ là cái cách đặt tên class, tên hàm, tên biến sao cho dễ hiểu. Hãy cùng Kieblog tìm hiểu Clean code từ những điều đơn giản nhất nha.
1. Clean code từ cái tên
Cùng xem một vài ví dụ dưới đây. Hãy tượng tượng bạn là leader và được giao review code. Các code nào sẽ được bạn đánh giá cao?. Cái code nào sẽ tiện để maintainance sau này?
// Khai báo biến tổng số ngày trong tháng int d; int totalDaysInMonth;
// Định nghĩa 2 biến start và end class StartTimeEndTime { private Date startmdhms; private Date endmdhms; } và class StartTimeEndTime { private Date startTimeStamp; private Date endTimeStamp; }
2. Don’t be cute – dễ thương làm gì
Nguyên tắc đặt tên cho bất cứ thứ gì khi lập trình tất nhiên là phải rõ nghĩ. Tuy nhiên, không phải rõ nghĩa nên viết thêm cho loằng ngoằng rắc rối cả ra.
Cuteness in code often appears in the form of colloquialisms or slang. For example, don’t use the name whack() to mean kill(). Don’t tell little culture-dependent jokes like eatMyShorts() to mean abort().
Viết code cute sử dụng những từ như tiếng lóng hoặc không thông dụng gây ra hiểu lầm. Ví dụ, đừng sử dụng whack() để ám chỉ kill() process hay gì đó. Đừng sử dụng eatMyShorts() để ám chỉ abort()
Việc đặt tên tốt nhất theo quy chuẩn chung, để các lập trình viên khác có thể hiểu được. Môi trường làm việc bây giờ quốc tế hóa.
Source code commit lên git có thể cho nhiều người khác tham khảo nên chú ý phần Clean code.
// Định nghĩa 2 biến start và end class StartTimeEndTime { private Date startmdhms; private Date endmdhms; } và class StartTimeEndTime { private Date startTimeStamp; private Date endTimeStamp; }
Đừng sử dụng từ địa phương, cũng đừng sử dụng những từ ngữ không quá phổ thông.
3. Don’t pun – đừng chơi chữ
Chơi chữ ở đây không mang nặng tính chất như sử dụng nghĩa bóng, cũng không phải nói xiên xẹo, móc mỉa một số người.
Chơi chữ ở đây chỉ đơn giản được hiểu là:
Avoid using the same word for two purposes. Using the same term for two different ideas is essentially a pun.
Sử dụng cùng một từ cho hai mục đích khác nhau. Sử dụng cùng một thuật ngữ cho hai ý tưởng khác nhau thì gọi là chơi chữ.
Ví dụ dễ hiểu nhất với Pun – Chơi chữ là method add(). Giả sử ta viết method add để thêm một số phần tử vào array list đã có sẵn. Khi nào method này trở thành chơi chữ?
Cùng là method add nhưng lại insert một record mới vào database. Cùng method add nhưng lại dùng để thêm item vào một list (như thế không gọi là Clean code, vì sẽ khiến người đọc confuse)
// Insert thường dùng cho database private void insert(RecordItem record) { } // Chú ý rõ nghĩa khi dùng, append dùng cho list, ... private void append(String item) { }
4. Class names và method names
Một số bạn bắt đầu quan tâm tới Clean code thường nghĩ về những đoạn code phức tạp, giải thuật phức tạp. Nhưng thực tế không phải vậy Clean code đôi khi chỉ đơn giản bắt nguồn từ một cái tên class, một tên biến.
Classes and objects should have noun or noun phrase names like Customer, WikiPage, Account, and AddressParser.
Classes và object nên là danh từ hoặc cụm danh từ. Ví dụ như Customer, WikiPage, Account và AddressParser
Một lưu ý khác là class name không bao giờ nên là động từ. Không ai viết class Flight, chỉ có interface Flightable, thay vào đó người ta viết class Bird.
Ngược lại với classes thì method lại nên là động từ hoặc cụm động từ.
Methods should have verb or verb phrase names like postPayment, deletePage, or save.
Method nên có động từ hoặc cụm động từ như postPayment, deletePage hoặc save.
Đối với các method thực hiện kiểm tra các điều kiện boolean, nên bắt đầu bằng is. Như ví dụ function isPosted dưới đây.
string name = employee.getName(); customer.setName("mike"); if (paycheck.isPosted())...
5. Tham khảo
- Don’t be that guys!. Viết functions sao cho tốt?
- Clean Code: A Handbook of Agile Software Craftsmanship – Uncle Bob
- Refactoring: Improving the Design of Existing Code (2nd Edition)
Bài viết gốc được đăng tải tại kieblog.vn
Có thể bạn quan tâm:
- Protected: Viết code sạch (Clean code) được gì? Phần 1
- Code PHP làm sao cho sạch (Phần 1)
- 20 trường hợp sử dụng lệnh Docker cho developer
Xem thêm Việc làm Developer hấp dẫn trên TopDev
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- i iOS 18 có gì mới? Có nên cập nhật iOS 18 cho iPhone của bạn?
- G Gamma AI là gì? Cách tạo slide chuyên nghiệp chỉ trong vài phút
- P Power BI là gì? Vì sao doanh nghiệp nên sử dụng PBI?
- K KICC HCMC x TOPDEV – Bước đệm nâng tầm sự nghiệp cho nhân tài IT Việt Nam
- T Trello là gì? Cách sử dụng Trello để quản lý công việc
- T TOP 10 SỰ KIỆN CÔNG NGHỆ THƯỜNG NIÊN KHÔNG NÊN BỎ LỠ
- T Tìm hiểu Laptop AI – So sánh Laptop AI với Laptop thường
- M MySQL vs MS SQL Server: Phân biệt hai RDBMS phổ biến nhất
- S SearchGPT là gì? Công cụ tìm kiếm mới có thể đánh bại Google?