طبق بررسی توسعه دهندگان وبسایت Stack Overflow در سال ۲۰۱۸، JavaScript با تشکر از اکوسیستم فریموورک همیشه در حال تکامل آن، برای یافتن بهترین راه حل برای مشکلات پیچیده و چالش برانگیز، یکی از مورد استفادهترین زبانهای برنامهنویسی است.
با این که JavaScript اکثر عمر خود را در ارتباط با توسعهدهی وب گذرانده است، اما در سالهای اخیر به نظر میرسد که استفاده از آن در حال گسترش یافتن است. این زبان نه تنها از frontend به backend منتقل شده است، بلکه ما کم کم میبینیم که برای چیزهای دیگری مانند یادگیری ماشین و واقعیت افزوده هم استفاده میشود.
تکامل JavaScript توسط فریموورکها رانده میشوند. با این که تعداد کمی از آنها رهبر هستند، اما تعداد زیادی ابزار کوچک دیگر وجود دارند که در سال ۲۰۱۹ میتوانند ارزش توجه شما را داشته باشند. حال بیایید نگاهی به آنها داشته باشیم.
قبل از این که به فریموورکهای JavaScript وارد شوید، نیاز به دانشی در زمینه خود این زبان میباشد و از این رو میتوانید دوره مربوطه را بر روی وبسایت راکت بگذرانید.
در بخش اول همراه ما باشید...
فریموورکهای توسعهدهی وب JavaScript
React
React در ابتدا در سال ۲۰۱۱ توسط فیسبوک توسعه داده شد و سپس در سال ۲۰۱۳ متن باز شد. از آن موقع، React تبدیل به یکی از معروفترین کتابخانههای JavaScript برای ساخت رابطهای کاربری شده است. طبق بررسی npm، با وجود رشد کند React در سال ۲۰۱۸، این فریموورک در سال ۲۰۱۹ حکمران خواهد بود. بررسی وضعیت JavaScript در سال ۲۰۱۸ با توجه به نسبت رضایت بالای React و تعداد بالای کاربران، آن را تحت عنوان «یک فناوری امن برای تطبیق یافتن» بیان میکند.
در سال ۲۰۱۸، تیم React نسخههای 16.3 تا 16.7 را به همراه برخی بروزرسانیهای بزرگ منتشر کرد. این بروزرسانیها شامل متدهای lifecycle جدید، اِیپیآی Context، تعلیق برای تقسیمبندی کد، یک پروفایلر React، Create React App 2.0 و... میباشند. تیم مربوطه از همین حالا هم برنامههای خود برای ۲۰۱۹ را بیان کرده و به زودی یکی از منتظرهترین امکانات، یعنی Hookها را منتشر خواهد کرد. این ویژگی توسعه دهندگان را قادر میسازد تا به ویژگیهایی مانند state بدون استفاده از کلاسهای JavaScript دسترسی داشته باشند. Hookها سادهسازی کد برای کامپوننتهای React را با قادر ساختن توسعه دهندگان به استفاده مجدد از منطق stateful، بدون اعمال تغییرات به سلسله مراتب کامپوننت در هدف دارد. امکانات دیگر، شامل یک حالت متقارن است، تا ساختار درختی کامپوننتها بتواند رندر شود، بدون این که thread اصلی را مسدود کند، دریافت داده را به تعلیق بیندازد و...
شما برای یادگیری React میتوانید چارت مهارت react در راکت را مشاهده کنید.
Vue
Vue توسط Eva You، پس از کار کردن برای گوگل و استفاده از AngularJS در تعداد زیادی از پروژهها ساخته شد. این فریموورک در ابتدا در سال ۲۰۱۴ منتشر شد. Evan You در هنگام بیان انگیزه خود برای ساخت Vue گفت: «من با خود فکر کردم که اگر میتوانستم فقط بخشی که در Angular دوست دارم را استخراج کنم و یک چیز بسیار سبک را بسازم چه؟» Vue همینطور اتخاذ بیشتری در میان توسعه دهندگان JavaScript را نشان داده است و شک دارم که این گرایش به زودی توقف یابد. طبق بررسی npm، برخی توسعه دهندگان Vue را به React ترجیح میدهند؛ زیرا حس میکنند که شروع کار با آن سادهتر میباشد، درحالیکه میتوانند توسعهپذیری آن را حفظ کنند.
Vue یک کتابخانه است که توسعه دهندگان را قادر میسازد تا رابطهای وب تعاملی بسازند. این کتابخانه کامپوننتهای واکنشپذیر نسبت به داده را مشابه React، با یک API ساده و منعطف فراهم میکند. برخلاف React یا Angular، یکی از منفعتهای Vue خروجی HTML مرتبی است که تولید میکند. کتابخانههای دیگر JavaScript معمولا HTML را به همراه صفات و کلاس پخش شده در کد رها میکنند، درحالیکه Vue این موارد را حذف میکند تا یک خروجی مرتب و معنادار را تولید کند. Vue امکانات پیشرفتهای مانند مسیریابی، مدیریت state و ابزار ساخت برای برنامههای پیچیده را از طریق کتابخانهها و پکیجهایی که به طور رسمی نگهداری میشوند فراهم میکند.
Angular
گوگل AngularJS را در سال ۲۰۰۹ توسعه داد و اولین نسخه آن را در سال ۲۰۱۲ منتشر کرد. از آن موقع، این فریموورک پشتیبانی مشتاقانه و اتخاذ گستردهای را هم در میان شرکتها، و هم افراد دید. AngularJS در اصل برای طراحان توسعه داده شده بود، نه توسعه دهندگان. با این که چند بهبود انقلابی را در طراحی خود دید، اما این بهبودها برای تحقق بخشیدن به نیازمندیهای توسعه دهنده کافی نبودند. نسخههای بعدی، یعنی Angular 2، Angular 3 و... ارتقا داده شدهاند تا یک بهبود کلی در کارایی، به خصوص در سرعت و تزریق dependency را فراهم کنند.
نسخه جدید آن فقط Angular نام دارد. یک پلتفرم و فریموورک که توسعه دهندگان را قادر میسازد تا برنامههای client را در HTML و TypeScript بسازند. این فریموورک قالبهای اعلانی، تزریق dependency، ابزار end-to-end و بهترین شیوههای مجتمع را به همراه دارد تا چالشهای توسعه دهنده را برطرف کند. با این که معماری AngularJS بر پایه MVC است، اما Angular یک معماری بر پایه کامپوننت دارد. هر برنامه Angular از حداقل یک کامپوننت تشکیل میشود که تحت عنوان «کامپوننت ریشه» (Root Component) شناخته میشود. هر کامپوننت به یک کلاس که مسئول مدیریت منطق کار است، و یک قالب که نماینده لایه view میباشد، مرتبط است.
Node.js
بحثهای زیادی درباره این که Node یک فریموورک است یا نه (در واقع Node یک کتابخانه است) وجود داشته است، اما وقتی که درباره توسعهدهی وب صحبت میکنیم، نادیده گرفتن آن سخت است. Node.js در اصل توسط Ryan Dahl نوشته شده بود، که او در تاریخ ۸ نوامبر ۲۰۰۹ در افتتاح کنفرانس European JSCong آن را به نمایش گذاشت. Node.js یک محیط رانش JavaScript رایگان، متن باز و میان پلتفرمی است که کد JavaScript را خارج از مرورگر اجرا میکند.
Node.js با متحد کردن توسعهدهی وباپلیکیشنها حول محور تنها یک زبان برنامهنویسی به جای چند زبان متفاوت برای سمت سرور و اسکریپت سمت کلاینت، از الگوی «JavaScript در همه جا» پیروی میکند. Dahl در JSConf 2018 برخی محدودیتها را درباره موتور رانش JavaScript سمت سرور توصیف کرد. بسیاری از بخشهای معماری آن، از محدودیتهایی شامل امنیت و نحوه مدیریت ماژولها رنج میبرند. او یک پروژه نرمافزاری جدید به نام Deno را به عنوان راه حلی برای این مشکل معرفی کرد. یک رانش TypeScript بر روی موتور V8 جاوااسکریپت که در هدف دارد تا برخی ضعفهای طراحی در Node.js را برطرف کند.
در راکت دوره های کاملی برای یادگیری node داریم که میتوانید از چارت مهارت node همه این دوره ها را مشاهده کنید
فریموورکهای توسعهدهی موبایل میان پلتفرمی
React Native
داستان React Native در تابستان ۲۰۱۳ به عنوان پروژه داخلی فیسبوک آغاز شد، و سپس در سال ۲۰۱۵ متن باز شد. React Native یک فریموورک JavaScript است که برای ساخت برنامههای موبایل بومی استفاده میشود. همانطور که احتمالا از نامش حدس زدهاید، React Native بر پایه React میباشد که پیشتر آن را مورد بحث قرار دادیم. علت این که آن را «Native» (بومی) مینامند، این است که رابط کاربری ساخته شده توسط React Native از ویجتهای رابط کاربری بومی تشکیل میشود که ظاهر و احساسی مشابه به برنامههای ساخته شده با استفاده از زبانهای بومی دارند.
React Native در اعماق خود تعریفات رابط کاربری شما که در JavaScript / JSX نوشته شدهاند را به سلسله مراتبی از viewهای بومی مناسب برای پلتفرم هدف ترجمه میکند. برای مثال، اگر ما در حال ساخت یک برنامه iOS باشیم، React در واقع Text premitiveرا به یک UIView بومی در iOS ترجمه خواهد کرد، و در اندروید هم به یک TextView بومی ختم خواهد شد. پس با این که ما در حال نوشتن یک برنامه JavaScript هستیم، اما ما یک وباپلیکیشن که در قالب یک برنامه موبایل پیادهسازی شده است را به دست نمیآوریم. ما یک «برنامه بومی واقعی» را به دست میآوریم.
برای یادگیری React Native باید یک پروسه طی بشه و ما این پروسه رو در چارت مهارت React به شما نشون دادیم
NativeScript
NativeScript توسط Telerik (یک شرکت تابع Progress) توسعه داده شده و در سال ۲۰۱۴ منتشر شد. NativeScript یک فریموورک متن باز است که به شما کمک میکند تا برنامهها را با استفاده از JavaScript یا هر زبان دیگری که به جاوااسکریپت transpile میشود، مانند TypeScript بسازید. NativeScript به طور مستقیم فریموورک Angular را پشتیبانی کرده، و فریموورک Vue را از طریق یک پلاگین توسعه داده شده توسط جامعه پشتیبانی میکند. برنامههای موبایلی که با استفاده از NativeScript ساخته میشوند، به برنامههای کاملا بومی ختم میشوند که از APIهای مشابهی استفاده میکنند. به گونهای که انگار در Xcode یا Android Studio توسعه داده شدهاند.
از آنجایی که برنامهها در JavaScript ساخته شدهاند، نیازی به مکانیزمهای پروکسی برای ترجمه کد JavaScript به APIهای بومی متناظر نیست. این کار با بخشهای رانش NativeScript انجام میشود، که به عنوان پلی میان JavaScript و دنیای بومی (اندروید و iOS) عمل میکنند. این رانشها فراخوانی APIها در فریموورکهای اندروید و iOS با استفاده از کد JavaScript را تسهیل میکنند. برای انجام این کار، ماشینهای مجازی JavaScript مورد استفاده قرار میگیرند.
NativeScript چیست و چگونه آن را پیادهسازی کنیم؟
فریموورک Ionic
فریموورک Ionic توسط Drifty Co. ساخته شده، و در سال ۲۰۱۳ منتشر شد. این فریموورک یک SKD متن باز و frontend برای توسعهدهی برنامههای موبایل دورگه، با فناوریهای وب آشنا مانند HTML5، CSS و JavaScript میباشد. با Ionic، شما خواهید توانست تا برنامههایی را ساخته و گسترش دهید، که در چندین پلتفرم مانند iOS بومی، اندروید، دسکتاپ و در وب به عنوان یک وباپلیکیشن پیشرونده کار میکنند.
Ionic در اصل بر روی ظاهر و احساس برنامه، یا تعاملات رابط کاربری متمرکز است. این مسئله به ما میگوید که قرار نبوده Ionic جایگزین Cordova یا فریموورک JavaScript مورد علاقه شما باشد. در واقع، Ionic هنوز نیاز به یک wrapper بومی مانند Cordova دارد تا برنامه شما را به عنوان یک برنامه موبایل اجرا کند. Ionic از این wrapperها برای دسترسی داشتن به امکانات سیستم عاملهای میزبان مانند دوربین، GPS، چراغ قوه و... استفاده میکند. برنامههای Ionic در مرورگرهای سطح پایین مانند UIWebView در iOS یا WebView در اندروید اجرا میشوند.
در بخش دوم که به زودی بر روی راکت قرار خواهد گرفت، همراه ما باشید...
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید