رفع مشکلات: در قسمت قبل با ذکر یک مثال و بیان مشکلات آن از دیدگاه اصول Defensive Code قصد داشتیم که مساله را روشنتر کنیم. مواردی که در
قسمت قبل ذکر شدند، به سادهترین شکل ممکن بیان
شدند و شما به راحتی با بررسی این موارد و تفکر در کدهای خود، میتوانید
این موارد را در کدی که خودتان مینویسید رعایت کنید. حل پیچیدگیهای موجود در کد قبل، با در نظر گرفتن اصول مذکور و اصولهای طراحی مختلف میتواند به روشهای مختلفی انجام گیرد. ...
در مطلب Iterators به بررسی حلقههای for of پرداختیم. اما سؤال مهم اینجا است که for of چگونه یک iterator را پیدا میکند و چه چیزی سبب میشود تا بتواند این پیمایش را انجام دهد؟ پاسخ به این سؤال نیاز به آشنایی با مفهوم جدیدی در ES 6 به نام Symbols دارد.
Symbol یک primitive data type جدید در ES 6 است؛ دقیقا مانند اعداد، Boolean، رشتهها و امثال آنها. دو نکتهی مهم در مورد Symbols وجود دارد:
الف) منحصربفرد و immutable ( ...
یکی از اهداف ES 6 ، استاندارد سازی کار با Iterators و Iterables است. فرض کنید شیءایی را داریم که مجموعهای از عناصر را در بر دارد. این مجموعه میتواند آرایهای از عناصر باشد و یا set و map اضافه شده به ES 6 و یا حتی اشیایی که در زمان اجرا ایجاد میشوند. اگر این مجموعه Iterable باشد، حرکت بر روی آن یک Iterator را تولید میکند که امکان حرکت در این مجموعه را آیتم به آیتم میسر خواهد کرد:
هر Iterator شیءایی است که د ...
در زبانهای برنامهنویسی مانند سیشارپ و یا جاوا میتوانیم از Reflection جهت خواندن متادیتاها استفاده کنیم. به عنوان مثال امکان تعریف پراپرتی و یا متدها و حتی تایپهایی در زمان اجرا را در اختیارمان قرار میدهد. اما از آنجائیکه جاوا اسکریپت یک زبان داینامیک است، این قابلیت کمتر مورد توجه قرار گرفته است. در جاوا اسکریپت حین کار با کلاسها و اشیاء، ممکن است نیاز داشته باشید تا از اعضای یک کلاس
کوئری بگیرید و یا اینکه یک سری پراپرتی و متد ...
تعریف Interaction Design در زبان طراحی، تعامل انسان و
کامپیوتر و توسعه نرمافزار اینگونه بیان میشود: « عمل طراحی تعاملی محصولات دیجیتالی، محیطها، سیستمها
و سرویسها. مانند سایر رشتههای طراحی، Interaction Design دارای شاخهها و توجهاتی است، اما به طور
ساده میتوان گفت که تمرکز اصلی این رشته برروی رفتارها است. » طراحی تعاملی یا Interaction Design ...
Destructuring assignment این امکان را به ES 6 اضافه کردهاست تا بتوان خواص یک شیء یا اعضای یک آرایه را با سهولت بیشتری به متغیرها نسبت داد و نگارش آن بسیار شبیه است به تعریف اشیاء یا آرایهها در جاوا اسکریپت.
Destructuring Arrays
بدون استفاده از Destructuring assignment برای دسترسی به اعضای یک آرایه و انتساب آنها به متغیرهای مختلف، روش متداول زیر مرسوم است: var first = someArray[0];
var second = someArra ...
معماری
اطلاعات یا Information
Architecture و
یا به اختصار IA در یک تیم توسعه نرمافزار، یک وظیفه پایه و
اساسی است که معمولا بین طراحان، توسعه دهندگان و یا طراحان استراتژی محتوا تقسیم
میگردد. اما صرف نظر از اینکه چه کسی در یک تیم آن را بر عهده میگیرد، IA تخصص خاص خود را نیازمند است که این تخصص که شامل ابزارها و شاخصها
و منابعی است که باید به درستی تحقیق و ...
در بیشتر زبانهای برنامهنویسی قابلیتی تحت عنوان String Interpolation وجود دارد. منظور، فرآیند جایگزین کردن مقادیر، با یکسری placeholder درون یک رشته است. در نسخههای قبلی جاوا اسکریپت محدودیتهایی در استفاده از رشتهها وجود داشت و امکان انجام این کار به صورت توکار مهیا نبود. یعنی برای پیادهسازی این قابلیت میتوانستیم با تغییر prototype شیء String و یا روشهای دیگری اینحالت را پیادهسازی کنیم ( + ): // First, checks if it isn't ...
در ES 6 تغییراتی جهت ساده سازی خواندن، نوشتن و همچنین بالا بردن امنیت متغیرها و پارامترها صورت گرفتهاند، تا دیگر شاهد یک سری رفتارهای عجیب و غریب، در حین کار با متغیرهای جاوا اسکریپتی نباشیم.
واژهی کلیدی let
تاکنون به کمک واژهی کلیدی var امکان تعریف متغیرها در جاوا اسکریپت مهیا بودند. برای نمونه در مثال زیر، متغیر x داخل بدنهی if با استفاده از var تعریف شدهاست: var doWork = function(flag){ ...
جاوا اسکریپت، پیاده سازی ECMA Script است (با تلفظ اکما اسکریپت) که به صورت مخفف به آن ES هم گفته میشود و ES 6، در حقیقت نگارش 6 این استاندارد است که به آن ECMA Script 2015 نیز میگویند (زمان نهایی شدن استاندارد آن سال 2015 است) و از زمان ارائهی جاوا اسکریپت، بزرگترین تغییر و تحول آن نیز محسوب میگردد. با ES 6 مواردی مانند کلاسها، برنامه نویسی تابعی (functional programming)، ماژولها و غیره اضافه شدهاند.
چرا باید ES ...