برنامه نویسی

Refactoring کد جاوا اسکریپت با Object Literals: رویکردی پاک و خواندنی

این مقاله کمی تغییر یافته است که چند سال پیش در رسانه نوشتم.
ارتباط دادن.

معرفی:

هنگامی که صحبت از احراز هویت کاربر یا انواع پرداخت های متعدد به میان می آید، اغلب با عبارات مشروط پیچیده ای مواجه می شویم که پیروی از آنها به سرعت دشوار می شود. اما نترس! یک ترفند ساده وجود دارد که می‌توانیم از آن برای خوانایی و نگهداری بیشتر کدمان استفاده کنیم: اشیاء واقعی. در این مقاله، من بررسی خواهم کرد که چگونه اشیاء واقعی می توانند احراز هویت کاربر یا هر سناریو مرتبط را ساده کرده و کد ما را درخشان کنند.

کد اولیه:

تصور کنید تکه‌ای از کد دارید که احراز هویت کاربر را با استفاده از روش‌های مختلف مانند ایمیل، ورود به سیستم اجتماعی و رمزهای عبور یک‌بار مصرف (OTP) انجام می‌دهد. بیایید نگاهی به کد اولیه بیندازیم:

const authenticateUser = (method, credentials) => {
    if (method === 'email') {
        this.authenticateWithEmail(credentials);
    } else if (method === 'social') {
        this.authenticateWithSocial(credentials);
    } else if (method === 'otp') {
        this.authenticateWithOTP(credentials);
    } else {
        throw new Error('Invalid authentication method.');
    }
};

const authenticateWithEmail = (credentials) => {
    // Here's where we authenticate using email credentials
};

const authenticateWithSocial = (credentials) => {
    // Here's where we authenticate using social credentials
};

const authenticateWithOTP = (credentials) => {
    // Here's where we authenticate using OTP credentials
};
وارد حالت تمام صفحه شوید

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

Refactoring با Object Literals:

برای اینکه کدمان پاک‌تر و خواناتر شود، می‌توانیم از قدرت حروف الفبای شی استفاده کنیم. بیایید کد را با استفاده از این روش بازنویسی کنیم:

const authenticationMethods = {
    email: this.authenticateWithEmail,
    social: this.authenticateWithSocial,
    otp: this.authenticateWithOTP
};

const authenticateUser = (method, credentials) => {
    const authenticate = authenticationMethods[method];

authenticate ? authenticate(credentials) : throw new Error('Invalid authentication method.');
};
وارد حالت تمام صفحه شوید

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

بیایید آن را تجزیه کنیم:

در کد بازسازی شده خود، یک شی به نام authenticationMethods ایجاد می کنیم. این شی مفید، هر روش احراز هویت را به تابع احراز هویت مربوطه نگاشت می کند. با این کار به راحتی می توانیم بر اساس روش ارائه شده به تابع احراز هویت مناسب دسترسی پیدا کنیم.

روزهای درهم پیچیده if-else یا موارد طولانی سوئیچ گذشته است. با لفظ شیء، کد ما تمیزتر و خواناتر می شود. اگر یک روش احراز هویت جدید در آینده ظاهر شود، تنها کاری که باید انجام دهیم این است که شی authenticationMethods را بدون لمس تابع authenticateUser به روز کنیم.

نتیجه:

با استفاده از لفظ شیء، می توانیم عبارات شرطی پیچیده را به کد ظریف و قابل خواندن تبدیل کنیم. در این مقاله، دیدیم که چگونه این تکنیک سناریوهای احراز هویت کاربر را ساده می کند. پذیرش این رویکرد نه تنها قابلیت نگهداری کد ما را افزایش می دهد، بلکه کار با آن را قابل درک تر و لذت بخش تر می کند.

من دوست دارم نظرات شما را بشنوم و به هر سوالی که ممکن است داشته باشید پاسخ دهم. پس ادامه دهید، آن را امتحان کنید و به من اطلاع دهید که چگونه لفظ شیء کد شما را به ارتفاعات جدیدی ارتقا می دهد!

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

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

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

همچنین ببینید
بستن
دکمه بازگشت به بالا