1. مقدمهای بر زبان ECMASCRIPT 6
PDF این مقاله در |ICI| در دسترس است.
مثالهای این مقاله در |ICI| موجود است.
این سند بخشی از مجموعهای متشکل از چهار مقاله است:
- [مقدمهای بر زبان ECMAScript 6 از طریق مثالها (۲۰۱۹)]. این سند فعلی است؛
- [مقدمهای بر فریمورک Vue.js از طریق مثالها (۲۰۱۹)];
- [مقدمهای بر فریمورک NUXT.JS از طریق مثالها (۲۰۱۹)];
اینها همه اسناد مخصوص مبتدیان هستند. مقالات از نظر منطقی به یکدیگر پیوستهاند اما ارتباطشان سست است:
- سند [1] زبان PHP 7 را معرفی میکند. خوانندگانی که تنها به زبان PHP علاقهمند هستند و نه به جاوااسکریپتی که در مقالات بعدی پوشش داده شده است، باید در اینجا متوقف شوند؛
- اسناد [2-4] با هدف ساخت یک کلاینت جاوااسکریپت برای سرور محاسبه مالیات توسعهیافته در سند [1] هستند؛
- فریمورکهای جاوااسکریپت [vue.js] و [nuxt.js] در مقالات ۳ و ۴ نیازمند دانش جاوااسکریپت از آخرین نسخههای ECMASCRIPT، یعنی نسخههای ۶، هستند. بنابراین، سند [2] برای کسانی در نظر گرفته شده است که با این نسخه از جاوا اسکریپت آشنایی ندارند. این سند به سرور محاسبه مالیات موجود در سند [1] اشاره میکند. بنابراین خوانندگان [2] ممکن است گهگاه نیاز داشته باشند به سند [1] مراجعه کنند؛
- پس از تسلط بر ECMASCRIPT، میتوانید به چارچوب VUE.JS بروید که به شما امکان میدهد کلاینتهای جاوااسکریپتی بسازید که در حالت SPA (برنامههای تکصفحهای) در مرورگر اجرا میشوند. این سند [3] است. این سند هم به سرور محاسبه مالیات که در سند [1] ساخته شده و هم به کد کلاینت جاوااسکریپت مستقل که در [2] ساخته شده، اشاره میکند. بنابراین خوانندگان [3] گاهی اوقات باید به اسناد [1] و [2] مراجعه کنند؛
- پس از تسلط بر VUE.JS، میتوانید به چارچوب NUXT.JS بروید که امکان ایجاد کلاینتهای جاوااسکریپت را فراهم میکند که در حالت SSR (رندر سمت سرور) در مرورگر اجرا میشوند. این اشاره به هر دو سرور محاسبه مالیات توصیفشده در سند [1]، کد کلاینت جاوااسکریپت مستقل توسعه یافته در [2]، و برنامه [vue.js] توسعه یافته در سند [3]. بنابراین خوانندگان [4] گاهی اوقات نیاز خواهند داشت به اسناد [1]، [2] و [3] مراجعه کنند؛
آخرین نسخهٔ سرور محاسبه مالیات که در سند [1] توسعه یافته است، را میتوان به روشهای مختلف بهبود بخشید:
- نسخه توصیفشده بر روی سرور تمرکز دارد. روند کنونی (ژوئیه ۲۰۱۹) به سمت معماری کلاینت/سرور است:
- سرور به عنوان یک سرویس (jSON) اجرا میشود؛
- یک صفحه ایستا یا پویا به عنوان نقطه ورود به برنامه وب عمل میکند. این صفحه حاوی HTML /CSS و همچنین جاوااسکریپت است؛
- سایر صفحات برنامه وب به صورت پویا توسط جاوااسکریپت تولید میشوند:
- صفحه HTML میتواند با کنار هم قرار دادن قطعات ایستا که توسط همان سروری که صفحه اصلی را ارائه کرده است، یا به طور کامل با جاوا اسکریپت ساخته شده باشد، تولید شود؛
- این صفحات مختلف دادههای درخواستی از سرویس jSON را نمایش میدهند؛
کار بدین ترتیب بین کلاینت و سرور تقسیم میشود. با کاهش بار کاری سرور، میتواند به کاربران بیشتری خدمترسانی کند.
معماری متناظر با این مدل به شرح زیر است:

JS: جاوااسکریپت
کد جاوااسکریپت در سمت کلاینت اجرا میشود:
- از یک سرویس که صفحات یا قطعات ایستا یا غیر ایستا را ارائه میدهد؛
- از یک سرویس jSON؛
بنابراین کد جاوااسکریپت یک کلاینت jSON است و به همین ترتیب میتوان آن را به لایههایی [UI, métier, dao] سازماندهی کرد (UI: رابط کاربری)، درست همانطور که مشتریان jSON ما که در PHP نوشته شده بودند، چنین بودند. در نهایت، مرورگر تنها یک صفحه را بارگذاری میکند: صفحه اصلی. سایر صفحات توسط جاوااسکریپت فراخوانی و رندر میشوند. این نوع برنامه به عنوان SPA: برنامه تکصفحهای یا APU: برنامه تکصفحهای شناخته میشود.
این نوع برنامه همچنین در دسته به اصطلاح AJAX: جاوااسکریپت ناهمزمان و XML قرار میگیرد
- غیرهمزمان: زیرا فراخوانیهای جاوااسکریپت سمت کلاینت به سرور jSON غیرهمزمان هستند؛
- XML: زیرا XML فناوری مورد استفاده پیش از ظهور jSON بود. با این حال، مخفف AJAX حفظ شده است؛
ما این نوع معماری را در فصلهای بعدی بررسی خواهیم کرد. در سمت کلاینت، ما از چارچوب جاوااسکریپت [Vue.js] [https://vuejs.org/] برای نوشتن کلاینت جاوااسکریپت برای سرور jSON PHP که در سند [1].
[Vue.js] یک چارچوب جاوااسکریپت است. برای درک آن، باید تسلط خوبی بر این زبان داشت. در این سند، استاندارد ECMAScript 6 را ارائه میدهیم که جدیدترین استانداردسازی این زبان (تا سال ۲۰۱۹) است. تاریخچه و نقش ECMAScript را میتوان در ویکیپدیا [https://fr.wikipedia.org/wiki/ECMAScript] یافت.
این سند فهرستی از اسکریپتهای کنسول جاوااسکریپت را ارائه میدهد که حوزههای مختلفی (ساختارهای زبان، دسترسی به پایگاه داده، دسترسی به اینترنت، برنامهنویسی لایهای و برنامهنویسی از طریق رابطها) را پوشش میدهند. این سند با دو برنامه به پایان میرسد:
یک برنامه کنسولی که به عنوان کلاینت برای سرور محاسبه مالیات ساختهشده در سند [1] عمل خواهد کرد. این کلاینت معماری یکسانی با کلاینت کنسولی PHP خواهد داشت که در سند [1] ساخته شده است:

- لایههای [7-9] همان لایههای کلاینت جاوااسکریپت خواهند بود که در یک کنسول در حال اجراست؛
- لایههای [1-4] همان لایههای سرور PHP 7 هستند که در سند [1] ساخته شدهاند؛
- برخلاف کلاینت کنسول PHP که در سند [1] ساخته شده است، هیچ تعاملی با سیستم فایل محلی [6] وجود نخواهد داشت؛
این یک برنامهٔ کلاینت/سرور است که کلاینت آن یک برنامهٔ کنسول است. یک برنامهٔ دوم نوشته خواهد شد که در آن کد لایههای [7-9] به یک مرورگر منتقل خواهد شد. سپس آماده خواهیم بود تا چارچوبهای جاوااسکریپت مرورگر را در اسناد [3] و [4] بررسی کنیم.
اسکریپتهای این سند دارای توضیحات (کامنت) هستند و خروجی کنسول آنها بازتولید شده است. توضیحات اضافی در صورت لزوم ارائه شده است. این سند نیازمند مطالعه فعال است: برای درک یک اسکریپت، باید کد، توضیحات و نتایج اجرای آن را بخوانید.
نمونههای این سند در |اینجا| موجود است.
اپلیکیشن سرور PHP 7 را میتوان |اینجا| آزمایش کرد.
Serge Tahé، اکتبر ۲۰۱۹