Bớt 'else' cho cuộc sống trở nên đơn giản hơn!

Lưu ý: Bài viết chống chỉ định cho các dev già cỗi đã có nhiều kinh nghiệm 🙂

Có ai đó đã từng nói "Cuộc sống này đã quá khổ rồi, chúng ta đừng làm khổ nhau thêm nữa!".

Thật vậy, cuộc sống này vốn dĩ nó đã rất phức tạp và mệt mỏi, mà dân Coder như mình và các bạn nhiều lúc còn mệt mỏi hơn bởi vô số những áp lực từ khác nữa, trong đó không thể thiếu những dòng code. Vì vậy, để làm giảm bớt sự thống khổ và mệt mỏi đó, khi viết code chúng ta nên viết sao cho đơn giản nhất có thể, ai đọc code của mình cũng có thể hiểu được (hoặc là chính bản thân mình sau nhiều năm nhìn lại code của mình viết :v).

Ngôn ngữ lập trình nào chắc cũng có if else (mình đoán thế chứ mình cũng không biết hết các ngôn ngữ). Vậy làm sao để viết code mà đỡ else đi cho cuộc sống đỡ rối rắm, lằng nhằng. Mình xin mạn phép chia sẻ 1 chút ít kiến thức nhỏ nhoi về cái if else này, hy vọng giúp được các bạn ít nhiều 😃

Nào, hãy xem thử qua 1 ví dụ đơn giản nhất có thể trước nhé. Chúng ta có đoạn code sau:

function hello(name) {
  if (name) {
    return `Xin chào ${name}`;
  } else {
    return 'Đây là đâu, tôi là ai';
  }
}

Thay vào đó, chúng ta có thể viết đơn giản hơn:

function hello(name) {
  if (name) {
    return `Xin chào ${name}`;
  } 
  return 'Đây là đâu, tôi là ai';
}

Vậy là đã bớt được 1 cái else đi rồi... Nhưng cũng có thể viết đơn giản hơn nữa với ES6 Ternary Operator (toán tử 3 ngôi):

function hello(name) {
  return name ? `Xin chào ${name}` : 'Đây là đâu, tôi là ai';
}

Cuộc sống trở nên thật đơn giản phải không các bạn 🙂

Bây giờ, chúng ta xét thêm 1 ví dụ phức tạp hơn 1 tí nữa nhé, xem thử chúng ta có thể làm cho cuộc sống đơn giản đến mức nào 🙃

function checkAge(number) {
  // Kiểm tra xem số có phải number không
  if (typeof number === 'number') {
    // Nếu số nhập vào bé hơn 18
    if (number < 18) {
      return 'Bạn chưa đủ tuổi trưởng thành, xin hãy rời khỏi trang web x....com';
    } else {
      return 'Hãy ngồi xuống và thưởng thức những bộ phim tuyệt vời thôi';
    }
  } else {
    return 'Vui lòng nhập số vào đây!';
  }
}

Thử bỏ bớt else đi xem nào...

function checkAge(number) {
  // Kiểm tra xem số có phải number không
  if (typeof number === 'number') {
    // Nếu số nhập vào bé hơn 18
    if (number < 18) {
      return 'Bạn chưa đủ tuổi trưởng thành, xin hãy rời khỏi trang web x....com';
    }
    return 'Hãy ngồi xuống và thưởng thức những bộ phim tuyệt vời thôi';
  }
    return 'Vui lòng nhập số vào đây!';
}

Tuy nhiên, chúng ta hoàn toàn có thể viết đoạn code trên trở nên clear và dễ hiểu hơn rất nhiều khi áp dụng Guard pattern. Nếu các bạn chưa biết Guard pattern là gì thì có thể đọc thêm ở đây.

function checkAge(number) {
  // Kiểm tra xem số có phải number không
  if (typeof number !== 'number') {
    return 'Vui lòng nhập số vào đây!';
  }
  // Nếu điều kiện 1 sai, hàm sẽ dừng thực thi ngay lập tức và ngược lại
  if (number < 18) {
    return 'Bạn chưa đủ tuổi trưởng thành, xin hãy rời khỏi trang web x....com';
  }
  return 'Hãy ngồi xuống và thưởng thức những bộ phim tuyệt vời thôi';
}

Thật sự đơn giản và dễ hiểu hơn nhiều đúng không nào 😉✌️

Trên đây là 1 bài viết ngắn chia sẻ 1 số kiến thức nhỏ của mình, hy vọng sẽ giúp ích được các bạn trong công việc. Xin chào và hẹn gặp lại!