KISS PRINCIPLE (Nguyên tắc KISS Trong JAVA)

5886

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 ISimple, 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ế =))

  10 Java Web Framework tốt nhất
  10 lý do cho thấy tại sao bạn nên theo học ngôn ngữ lập trình Java

Á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:

Xem thêm các việc làm ngành cntt hấp dẫn tại TopDev