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

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

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

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

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

نه فقط کد دیگران

دسته بندی :اخبار سایت 26 مارس 2023 علیرضا بابامرادی 85
نه فقط کد دیگران

نه فقط کد دیگران

ممکن است برخی از شما در این مرحله شک داشته باشید که آیا این یک معامله به اندازه ای است که من می گویم. شاید اگر اصلاً با ابزارهای واقعاً شخص ثالث تعامل نداشته باشید. شاید شما از API های نسخه شده استفاده می کنید یا چنین کتابخانه هایی را خود میزبانی می کنید تا رفتار آن از زیر شما تغییر نکند.

بنابراین، به این فکر کنید: آیا واقعاً می توانید به ابزارهایی که از نظر تئوری کنترل می کنید (در پایه کد خود) اعتماد کنید؟

این طور فکر کنید: اکثر ما موافقیم که حداقل تا حدی باید عملکردهای داخلی خود را با برخی بررسی های دفاعی روی پارامترهای ورودی بسازیم تا مشکلات غیر منتظره را کاهش دهیم/جلوگیری کنیم.

اعتماد بیش از حد به ورودی:

function addNumbers(x,y) {
// + is overloaded with coercion to also be
// string concatenation, so this operation
// isn’t strictly safe depending on what’s
// passed in.
return x + y;
}

addNumbers(21, 21) ;          //42

addNumbers(21, ”21”) ;       //”2121”

 

دفاع در برابر ورودی نامعتبر:

function addNumbers(x,y) {
// ensure numerical input
if (typeof x != “number” || typeof y != “number”) {
throw Error( “Bad parameters” );
}

// if we get here, + will safely do numeric addition
return x + y;
}

addNumbers(21, 21) ;          //42

addNumbers(21, ”21”) ;       // Erorr : “ Bad parameter”

 

یا شاید هنوز امن اما دوستانه تر:

function addNumbers(x,y) {
// ensure numerical input
x = Number( x );
y = Number( y );
// + will safely do numeric addition
return x + y;
}

addNumbers( 21, 21 ); // 42
addNumbers( 21, “21” ); // 42

با این وجود، این نوع بررسی ها/نرمال سازی ها در ورودی های تابع بسیار رایج است، حتی با کدهایی که از لحاظ نظری کاملاً به آن اعتماد داریم. به نوعی خام، مانند معادل برنامه نویسی اصل ژئوپلیتیک «Trust But Verify» است.

بنابراین، آیا منطقی نیست که ما باید همین کار را در مورد ترکیب فراخوان‌های تابع async انجام دهیم، نه فقط با کدهای خارجی، بلکه حتی با کدهایی که می‌دانیم عموماً «تحت کنترل خودمان» هستند؟ البته که باید

اما تماس‌های تلفنی واقعاً چیزی برای کمک به ما ارائه نمی‌دهند. ما باید همه آن ماشین‌آلات را خودمان بسازیم، و اغلب به تعداد زیادی دیگ بخار/سربار ختم می‌شود که برای هر تماس غیرهمگام تکرار می‌کنیم.

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

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

جهنم واقعا.

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

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

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

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

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

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

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

لینک کوتاه:
0