KISS PRINCIPLE (Nguyên tắc KISS Trong JAVA)
Bài viết được sự cho phép của tác giả Trần Hữu Cương
Nguyên tắc KISS trong Java.
KISS là gì?
KISS ở đây là: Keep It Simple, Stupid! không phải “hun nhau” đâu nhé.
Hiểu nôm na thì KISS cõ nghĩa là giữ cho code của bạn thật đơn giản, càng đơn giản, ngắn gọn càng tốt.Bạn viết code, người khác vừa đọc đã hiểu bạn đang viết cái gì, code của bạn thực hiện cái gì thì bạn đang áp dụng thành công rồi đấy.
Tuyển lập trình Java lương cao mới ra trường
Ví dụ 1:
mình có 1 method:
public int addTwoNumber(int a, int b) { return a + b; }
Khi bạn đọc nó bạn có thể hiểu luôn method đó làm cái gì. Với những method có logic phức tạp hơn, dài dòng hơn thì bạn cần phải biết đặt tên biến, tên hàm, comment thế nào để cho code của bạn dễ hiểu. (Có thời gian thì bạn hãy đọc cuốn ‘clean code’ của Robert C. Martin, bạn sẽ pro ngay mấy cái này =)) )
Ví dụ 2:
mình có 2 method đều thực hiện trả về true nếu số truyền vào là số chẵn:
// method 1 public static boolean isEven(int input) { return (input & 1) == 0; } // method 2 public static boolean isEven(int input) { return (input % 2) == 0; }
Rõ ràng, method 1 nhanh hơn method 2 vì nó thực hiện trực tiếp với bit. Nhưng method 2 lại dễ hiểu hơn, người đọc không cần nhớ lại toán tử ‘&’ thực hiện như nào.
Ở đây mình chọn method 2 vì nó dễ hiểu, rõ ràng. Còn method 1 có nhanh hơn nhưng tính tổng thể thì nó không nhanh hơn quá nhiều chỉ tính bằng mini giây (chỉ khi nào bạn thực hiện lập trình nhúng, big data… thì có lẽ lúc đó người ta sẽ xem xét lại.)
Ví dụ 3:
bạn có biết hàm tìm kiếm string cài đặt sẵn trong java được viết theo thuật toán ‘Naive Search’, trong khi bạn chỉ cần lên google là có hàng tá thuật toán cùng chức năng với ‘Naive Search’ mà có tốc độ cao hơn nhiều nhưng người ta vẫn dùng ‘Naive Search’ vì nó dễ hiểu, dễ cài đặt. Còn nếu bạn muốn nhanh hơn thì tất nhiên phải viết lại method mới phù hợp cho mục đích của mình rồi.
Với cấp độ cao hơn, khi mà người ta áp dụng các pattern, framework… bản chất code đã trở nên phức tạp hơn nhiều nên tùy theo nhu cầu (khả năng mở rộng, chịu tải, nâng cấp version…), thực sự cần thì người ta mới áp dụng. Chứ mấy cái app con con bạn cũng áp dụng vào vào thì nó sẽ khiến bạn tốn thời gian viết code, thời gian debug…
Nếu bạn đọc code của đứa nào đó thấy khó hiểu thì đừng vội cho đó là cao siêu, hãy hỏi nó sao code mày khó hiểu thế =))
Áp dụng KISS vào code của bạn.
- Đặt tên hàm, biến, method, class, package, comment rõ nghĩa.
- Không lạm dụng framework, pattern.
- Chia vấn task của bạn thành các task nhỏ hơn để code 1 cách rõ ràng.
- Giới hạn mỗi method chỉ nên từ 30-50 lines, và mỗi method chỉ nên thực hiện 1 chức năng.
- Hiểu rõ các vấn đề trước khi code.
- Không nên sử dụng nhiều câu lệnh If trong 1 method, hãy tách nó ra thành các method khác nhau.
Khi áp dụng được nguyên tắc KISS rồi bạn sẽ thấy nó có rất nhiều lợi ích:
- Các vấn đề được giải quyết nhanh hơn, tránh được các issue phức tạp
- Code dễ sử dụng, dễ test
- Bản thân code đã chính là tài liệu, comment cho chính nó
- Và dễ dàng bảo trì, sửa lại code khi cần
Bạn có thể xem thêm một số nguyên tắc lập trình khác tại đây
Source: https://people.apache.org/~fhanik/kiss.html
Bài viết gốc được đăng tải tại stackjava.com
Có thể bạn quan tâm:
- Một số nguyên tắc, định luật trong lập trình
- SOLID – Nguyên tắc 1: Đơn nhiệm – Single Responsibility principle (SRP)
- YAGNI, DRY là gì? (Nguyên tắc YAGNI, DRY trong Java)
Xem thêm các việc làm ngành cntt hấp dẫn tại 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?