برنامه نویسی

چگونه عبارات if خود را ساده کنیم

شرط‌های تودرتو می‌توانند خواندن و تغییر کد شما را سخت‌تر کنند، به‌ویژه اگر آنها را بیش از یک سطح تودرتو کنید.

در زیر، نمونه ای از تابعی را نشان خواهم داد که برای کاربر ارائه شده تخفیف برمی گرداند.

  • باید 20 درصد تخفیف برای همه کاربران عادی بدهد.
  • اما اگر کاربر عضویت ممتاز داشته باشد 40 درصد تخفیف می دهد.
  • کاربران طلا بیشترین تخفیف را دارند: 60%.
  • اگر کاربر ممنوع است، اما نباید هیچ تخفیفی بدهد.

بدون بند محافظ، این تابع را به صورت زیر می نویسم:

function getDiscountForUser(user) {
  let result
  if (user.isBanned) {
    result = 0
  } else {
    if (user.isPremium) {
      result = 40
    } else {
      if (user.isGold) {
        result = 60
      } else {
        result = 20
      }
    }
  }
  return result
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

من در زیر به شما نشان خواهم داد که چگونه بندهای محافظ می توانند آن را بسیار ساده تر کنند. اما ابتدا، بند های نگهبانی چیست؟

بندهای نگهبانی چیست؟

بندهای محافظ چک هایی هستند که در ابتدای یک تابع برای بررسی شرایط غیرعادی قرار می دهید.

یک وضعیت معمولی (یا عادی نامیده می شود) شرایطی است که بیشتر موارد را برای رفتار مورد نیاز نشان می دهد – در این مورد، کاربران عادی 20٪ تخفیف دریافت می کنند. هر چیزی غیر از این حالت غیرعادی نامیده می شود.

بندهای محافظ نیز در صورت درست بودن فوراً برمی‌گردند – از اجرای سایر شرایط جلوگیری می‌کند.

در اینجا همان تابع به نظر می رسد اما با بندهای محافظ:

function getDiscountForUser(user) {
  if (user.isBanned) return 0
  if (user.isPremium) return 40
  if (user.isGold) return 60

  return 20
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با زیبایی بند های محافظ، خواندن و تغییر عملکرد بسیار آسان تر شد.


اگر این مقاله را دوست داشتید، تمام مقالات دیگر من در Coddip را بررسی کنید—این مکانی برای ارتقاء کیفیت کد جاوا اسکریپت شماست.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا