Bài viết được sự cho phép của tác giả Kiên Nguyễn
Như cái tiêu đề sock hàng, bài viết này chủ yếu nói về việc hạn chế sử dụng if else nhiều nhất có thể.
Viết nhiều if else là phù hợp cho những người mới bắt đầu. Còn khi đã đạt tới “trình” cao hơn, hãy luôn tìm mọi cách để loại bỏ đi các đoạn if else không cần thiết trong souce.
BẰNG CÁCH NÀO?. Đây, một vài cách có thể áp dụng!
1. Chúng ta có return
Sử dụng if else nhiều lần gần như là vấn đề mà bất kì Junior Developer nào cũng gặp phải. Cùng xem xét ví dụ dưới đây:
Java
public void checkConditionSomething(int input) {
if (input > 10) {
// Do something in case greater than 10
} else {
// Do some something
}
}
Code như này thường là có code của Junior, suy nghĩ đơn giản. Nếu này thì làm gì, ngược lại thì làm gì. Viết kiểu này tốt cho người mới bắt đầu vì dễ hiểu, dễ áp dụng.
Tuy nhiên, nên nhớ là ta vẫn còn return, một return sẽ đổi được một else. Nhìn còn professional khi viết các function nhỏ.
Java
public void checkConditionSomething(int input) {
if (input > 10) {
return
}
// Do something like else
}
Trường hợp logic thực thi ở if và else chỉ là single (gán, so sánh, return giá trị). Cách viết chuẩn mực, gọn gàng.
Java
public boolean checkConditionSomething(int input) {
// Khỏi cần if else source vẫn đẹp như thường
return input > 10 ? true : false;
}
Còn viết function sao cho tốt thì có thể tham khảo bài viết về function – viết sao cho tốt tại Kieblog
2. Return thay cho sử dụng if else thừa
Cũng là một cách khác, tuy nhiên thay vì sử dụng if else với else cuối cùng, ta có thể return ngay lập tức giá trị đó.
Java
public String getStringValue(int input) {
String value = "";
// Một đoạn if else dài loằng ngoằng
if (input == 0) {
value = "Kie";
} else if (input == 1) {
value = "blog";
} else {
value = "Kieblog";
}
return value;
}
If else kiểu này thì thật sự là thảm họa. Tuy nhiên, lúc ngồi nghĩ về logic viết như thế này có thể chấp nhận được. Nhưng sau đó thì sao?.
Khi maintainance, có thể bỏ bớt else bằng cách return giá trị default.
Java
public String getStringValue(int input) {
// Không còn else, source đẹp, dễ hiểu
// Không mất công decleare variable
if (input == 0) return "Kie";
if (input == 1) return "blog";
return "Kieblog";
}
3. Bỏ if else dùng dictionary
Ngoài sử dụng if else ta còn có thể sử dụng Dictionary để thay thế cho các block if else.
Java
public String getStringValue(int input) {
String value = "";
// Một đoạn if else dài loằng ngoằng
if (input == 0) {
value = "Kie";
} else if (input == 1) {
value = "blog";
} else {
value = "Kieblog";
}
return value;
}
Có thể sử dụng Dictionary như sau:
Java
public String getStringValue(int input) {
// Dùng dictionary cũng là một cách, đẹp source ra hẳn
var operations = new Dictionary<string, Action>();
operations[0] = () => { //Do something }
operations[1] = () => { // Do something }
}
Sử dụng if else quá nhiều lần không những không làm rõ được nội dung đoạn source. Ngược lại còn làm rối tung rối mù lên. Tuy thuận tiện khi viết source logic lần đầu, nhưng nên thay đổi để bỏ bớt khi refactor source lần sau.
Viết cẩn thận chứ không em út sau đọc nó chửi sml ra.
4. Tham khảo
- How to replace many if statements in Java
- Refactoring If-else statement
- Câu lệnh rẽ nhánh (if else) trong Java
Bài viết gốc được đăng tải tại kieblog.vn
Có thể bạn quan tâm:
- Xây dựng một bộ source SASS thế nào cho đẹp
- Tuyển tập “cheatsheet” bộ câu hỏi cho anh em developer trước buổi phỏng vấn
- So sánh giữa Native App Development và Hybrid App Development
Xem thêm các việc làm Developer hấp dẫn tại TopDev