آدرس : تهران میدان فردوسی خیابان ایرانشهر بین سمیه و طالقانی مجتمع تجاری میلاد واحد 9

پشتیبانی 24 ساعته : 02188867940 – 09927674217

برای مشاهده لیست علاقه مندی ها وارد شوید!

مشاهده محصولات فروشگاه
0

هیچ محصولی در سبد خرید نیست.

جهنم پاسخ به تماس

دسته بندی :اخبار سایت 26 مارس 2023 علیرضا بابامرادی 91
جهنم پاسخ به تماس

جهنم پاسخ به تماس

و انگار همه اینها کافی نیست، ما حتی به اتفاقی که می افتد زمانی که دو یا چند زنجیره از این تداوم تماس ها به طور همزمان رخ می دهند، یا زمانی که مرحله سوم به کال بک های “موازی” با گیت ها یا چفت ها منشعب می شود، اتفاق می افتد، دست نزده ایم، یا… اوه خدای من، مغز من درد می کند، شما چطور!؟

آیا این تصور را در اینجا دریافت کرده اید که رفتارهای برنامه ریزی مغزی متوالی و مسدودکننده ما به خوبی با کد ناهمگام برگشتی تماس نگاشت نمی شوند؟ این اولین نقص عمده ای است که در مورد تماس های برگشتی بیان می شود: آنها ناهماهنگی را در کد به روش هایی بیان می کنند که مغز ما مجبور است فقط برای هماهنگی با آنها بجنگد (جناسی که در نظر گرفته شده است!).

 

مسائل مربوط به اعتماد

عدم تطابق بین برنامه‌ریزی متوالی مغز و کد JS غیرهمگام مبتنی بر تماس، تنها بخشی از مشکل تماس‌های برگشتی است. چیزی بسیار عمیق تر وجود دارد که باید در مورد آن نگران بود.

بیایید یک بار دیگر مفهوم تابع callback را به عنوان ادامه (معروف به نیمه دوم) برنامه خود مرور کنیم:

// A
ajax( “..”, function(..){
// C
} );
// B

// A و // B اکنون تحت کنترل مستقیم برنامه اصلی JS اتفاق می‌افتند. اما // C به تعویق افتاد تا بعداً اتفاق بیفتد، و تحت کنترل یک طرف دیگر — در این مورد، تابع ajax(..). در یک مفهوم اساسی، این نوع از دست دادن کنترل به طور منظم باعث ایجاد مشکلات زیادی برای برنامه ها نمی شود.

اما فریب نادر بودن آن را نخورید که این سوئیچ کنترلی چیز مهمی نیست. در واقع، این یکی از بدترین (و در عین حال ظریف ترین) مشکلات در مورد طراحی مبتنی بر تماس است. این حول این ایده می چرخد که گاهی اوقات ajax (..) (یعنی “طرفی” که ادامه تماس خود را به آن تحویل می دهید) تابعی نیست که شما نوشته اید یا مستقیماً آن را کنترل می کنید. اغلب اوقات این یک ابزار است که توسط شخص ثالث ارائه شده است.

زمانی که شما بخشی از برنامه خود را بر عهده می گیرید و کنترل اجرای آن را به شخص ثالث دیگری واگذار می کنید، این را «وارونگی کنترل» می نامیم. یک “قرارداد” ناگفته بین کد شما و ابزار شخص ثالث وجود دارد — مجموعه ای از چیزهایی که انتظار دارید حفظ شوند.

 

داستان پنج پاسخ به تماس

ممکن است خیلی واضح نباشد که چرا این یک معامله بزرگ است. اجازه دهید یک سناریوی اغراق آمیز بسازم تا خطرات اعتماد در بازی را نشان دهم.

تصور کنید که شما یک توسعه دهنده هستید که وظیفه ایجاد یک سیستم پرداخت تجارت الکترونیک را برای سایتی دارید که تلویزیون های گران قیمت می فروشد. شما در حال حاضر تمام صفحات مختلف سیستم پرداخت را به خوبی ساخته اید. در صفحه آخر، هنگامی که کاربر برای خرید تلویزیون روی “تأیید” کلیک می کند، باید با یک تابع شخص ثالث (که توسط برخی از شرکت های ردیابی تحلیلی ارائه شده است) تماس بگیرید تا فروش قابل ردیابی باشد.

متوجه می‌شوید که آن‌ها چیزی شبیه ابزار ردیابی ناهمگام را ارائه کرده‌اند، احتمالاً به خاطر بهترین عملکرد، که به این معنی است که شما باید یک تابع تماس را ارسال کنید. در این ادامه که پاس می کنید کد نهایی را خواهید داشت که کارت اعتباری مشتری را شارژ می کند و صفحه تشکر را نمایش می دهد.

این کد ممکن است به شکل زیر باشد:

analytics.trackPurchase( purchaseData, function(){
chargeCreditCard();
displayThankyouPage();
} );

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

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

علیرضا بابامرادی

راه آسان‌تری برای ارتباط با کاربران‌مان پیدا کرده‌ایم :) عضویت در کانال

مطالب زیر را حتما بخوانید:

قوانین ارسال دیدگاه در سایت

  • چنانچه دیدگاهی توهین آمیز باشد تایید نخواهد شد.
  • چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد.
  • چنانچه از لینک سایر وبسایت ها و یا وبسایت خود در دیدگاه استفاده کرده باشید تایید نخواهد شد.
  • چنانچه در دیدگاه خود از شماره تماس، ایمیل و آیدی تلگرام استفاده کرده باشید تایید نخواهد شد.
  • چنانچه دیدگاهی بی ارتباط با موضوع آموزش مطرح شود تایید نخواهد شد.

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

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

لینک کوتاه:
0