با تکثیر و رشد جاوااسکریپت، تقاضا برای دست یافتن به توانایی برنامهنویسی سمت سرور در میان توسعهدهندگان نیز افزایش پیدا کرده است. با داشتن مفهوم فراخوانی و مبتنی بر رویداد بودن نودجیاس قدم قابل توجهی برای این کار گذاشته است. به همین دلیل است که ما در شرکت عاشق نودجیاس هستیم و همراه با دیگر فریمورکهای جاوااسکریپت سعی داریم که تجربه بسیار خوبی را در بین سیستمعاملهای متفاوت ایجاد کنیم.
سرویسی مانند پیپال که دارای ۲۱۸ میلیون کاربر است از نودجیاس استفاده میکند و این کارایی نودجیاس را اثبات میکند، در کنار این شرکتهای بزرگ دیگری نیز نظیر اوبر، نتفلیکس و ایبی نیز از چنین تکنولوژی بهره میگیرند. به همین دلیل است که ما قصد داریم مواردی را در رابطه با آن با شما در میان بگذاریم.
نودجیاس یک محیط اجرایی سرور-ساید است که برای ساخت اپلیکیشن مقیاسپذیر و سریع استفاده میشود. این تکنولوژی سبک است و به شما اجازه میدهد تنها در چند دقیقه یک وب سرور را ایجاد کنید.
خالق نودجیاس Ryan Dahl گفته که ایده این تکنولوژی را از جیمیل گرفته و خواسته که اپلیکیشنی ایجاد کند که بتواند قابلیت بلادرنگ داشته باشد. به همین دلیل پارادایم مبتنی بر رویداد بودن به هسته اصلی نود تبدیل شد. بعد از پارادایم کلاسیک و قدیمی (درخواست/پاسخ) حال توسعهدهندگان میتوانند آزاد این قاعده دادهها را بین (سرور/مشتری) رد و بدل کنند.
افسانهها و واقعیات در رابطه با نودجیاس
به صورت اصلی، نودجیاس یک موتور سرور است که میتوانید آن را ویرایش و مطابقت دهید، این تکنولوژی تنها زمانی کار میکند که آن را نصب کنید. درخواستها در این تکنولوژی مانند یک حلقه پردازش میشوند (حلقهای از رویدادها) و به همین دلیل است که نودجیاس در واقع یک محیط اجرایی است. قرار گرفتن در اکوسیستم جاوااسکریپت که برای توسعه اپلیکیشنها انتخاب خوبی است به شما این اجازه را میدهد که بتوانید با دیگر ابزارهای جاوااسکریپت به سادگی نود را همراه با رابطها و ارتباطات آن پیادهسازی کنید. در کلامی سادهتر نودجیاس و جاوااسکریپت به شما این امکان را میدهند که به سادگی تنها در چند خط کد یک سرور را راه اندازی کنید.
اما بیشتر مردم در رابطه با نودجیاس یکسری تصورات غلط نیز دارند. در اینجا تصمیم دارم لیستی از این افسانهها را با شما به اشتراک بگذارم.
افسانه :
- نودجیاس یک فریمورک است.
- تنها روی موتور V8 کروم تکیه دارد.
- از برنامهنویسی چندرشتهای پشتیبانی نمیکند.
- توسعهدهندگان مبتدی نمیتوانند با آن کار کنند.
واقعیتها :
- نودجیاس در حقیقت یک پلتفرم است که توانایی اجرای کدهای جاوااسکریپت را در سمت سرور دارد.
- یک سیستم متن باز و چند پلتفرمه است که برای ساخت اپلیکیشنهای وب از آن استفاده میشود.
- میتواند APIهای اجرای ناهمزمان و اپلیکیشنهای مبتنی بر رویداد را فراهم سازد.
- هر توسعهدهندهای که با جاوااسکریپت آشنایی داشته باشد میتواند نودجیاس را یاد بگیرد.
واقعیتها در رابطه با نودجیاس
نودجیاس در سالهای اخیر بسیار متمایز بوده است. یکی از مواردی که باعث این متمایز بودن شده، بی گمان توانایی اجرا شدن روی سرور است. با استفاده از نودجیاس، جاوااسکریپت دیگر به مقوله Front-End و کار با مرورگر محدود نمیشود بلکه می تواند بدون آن نیز زندگی کند. اجرا کردن کدها در طرف سرور این قابلیت پردازش را به نود میدهد. در کنار این موارد یکسری واقعیتهای دیگر در رابطه با نودجیاس وجود دارد که در زیر آنها را مطالعه میکنیم.
شماره ۱: جاوااسکریپت توانا است.
آیا میدانستید که استفاده از جاوااسکریپت برای توسعه اپلیکیشنها در مرورگر سادهترین و محبوبترین روش است؟ میتوانید چنین کاری را در زبانهای دیگری نیز انجام دهید اما ساده نخواهد بود. البته میتوانید این کار را از طریق دیگر تکنولوژیها مانند تایپ اسکریپت، کافیاسکریپت و… نیز انجام دهید که البته ممکن است تنها در برخی از مرورگرها پشتیبانی شوند. علاوه بر این جاوااسکریپت محبوب ترین زبان در گیتهاب است. جادوی نودجیاس این است که به شما اجازه میدهد با استفاده از جاوااسکریپت در قسمت سرور نیز برنامههایتان را اجرا کنید! جاوااسکریپت همچنین قابلیت اجرا شدن روی سیستمعاملهای متفاوت را دارد.
در مقایسه با دیگر زبانها و سیستم حلقه رویدادی آنها (پایتون و روبی) جاوااسکریپت نشان داده که کارایی بهتری از خود را نشان میدهد. جدای از آن برنامهنویس برای کار کردن در هر دو بخش مرورگر و سرور تفاوتهای زیادی را احساس نمیکند و می تواند کمتر دچار خطا شود.
شماره ۲: قدرت گرفته از گوگل کروم
نودجیاس در قسمت Back-End از موتور V8 گوگل بهره میبرد. این همان محیط اجرایی در گوگل کروم است که به شما اجازه میدهد تا کارهای Front-End را اجرا کنید خوبی این مسئله در کجاست؟ توسعهدهندگان مختلف سر این موضوع که سریعترین و پویاترین محیط اجرایی را بسازند رقابل داشتند. گوگل در بین این موارد توانست با استفاده از موتور خودش نودجیاس را به چنین قدرتی برساند.
در کنار این ابزارهای توسعه گوگل به شما قابلیت اشکال یابی را میدهند. بنابراین میتوانید در مرورگر کروم هم کدهای مربوط به فرانت-اند و بک-اند را رفع عیب کنید.
شماره ۳: قدرتگرفته از JSON
چرا با زبان برچسب گذاری XML کار کنیم زمانی که موردی کاربردیتر به نام JSON در اختیار داریم؟ نشانهگذاری شئ جاوااسکریپت یا جیسان یک قالب قدرتمند و محبوب برای تبادل داده است. این قالب ساده است و به توسعه دهندگان اجازه میدهد که به سرعت API مورد نظرشان را بنویسند. در حقیقت این یکی از ستونهای جاوااسکریپت است.
در گذشته برنامهنویسی، پیادهسازی دادههای پویا جاوااسکریپت در مرورگر کار سختی بود، اما با ظهور JSON این کار سادهتر شد. از طرفی دیگر این تکنولوژی باعث بوجود آمدن بانکهای اطلاعاتی NoSQL مانند MongoDB شد. در ابتدا این تکنولوژی تنها برای جاوااسکریپت در دسترس بود اما حال به یک استاندارد کامل تبدیل شده است.
شماره ۴: به اشتراک گذاری، مهم است
جامعه نودجیاس باز و دوستانه است به همین دلیل میتوانید هر پکیجی از کدهایتان را به اشتراک بگذارید. نودجیاس همچنین به شما این قابلیت را میدهد که چنین حالتی را ساده تر کنید. هر توسعهدهندهای میتواند کدها و ماژولهایش را در مخزن عمومی منتشر کند. در روند قانونی آن، لایسنس متنباز MIT از تمام مشکلات مراقبت میکند.
در حال حاضر ممکن است بتوانید بیشتر از 475 هزار پکیج را در NPM مشاهده کنید. نکته قابل توجه اینجاست که شما در صورتی که با یک چالش روبرو شوید میتوانید راه حل آن را در ماژولها و محیط توسعه نودجیاس بیابید.
شماره ۵: NPM، ماژولها و ابزارها
NPM یا مدیریت پکیج نود، یکی از ویژگیهایی است که به صورت پیشفرض در نود وجود دارد. در حقیقت هسته اصلی برای گسترش محیط توسعه نود به حساب میآید. NPM شامل یک خط فرمان و بانک اطلاعاتی از تمام پکیجهای موجود میشود، این پکیج منیجر به شما قدرت مدیریت پکیجها و ابزارهای جاوااسکریپت به صورت محلی در برنامه و عمومی را میدهد. این ویژگی به شما قابلیت آگاه شدن از ماژولهای مورد استفاده در نودجیاس را میدهد. میتوانید هرکدام از این ماژولها را تعریف و یا مدیریت کنید.
در نهایت باید بگویم که یکی از مزیتهای خوب نودجیاس همراه بودن آن با مستندات، ابزارات و مثالهای بسیار خوب است. این قابلیت به شما این امکان را میدهد که بهترین کارها را با پروژههایتان انجام دهید.
به نظر میرسد که اگر نگاهی به مزایا و معایب نودجیاس نیز بیاندازیم مناسب باشد، پس بیاید این کار را انجام دهیم:
مزایا
- یادگیری و کار با آن برای هر توسعهدهندهای که با جاوااسکریپت آشنایی دارد، ساده است.
- محیط اجرایی آن از کشینگ ماژولها پشتیبانی میکند.
- ورودی و خروجیهای مبتنی بر رویداد به شما این امکان را میدهد که بهتر درخواستها را مدیریت کنید.
- کدی مشترک برای توسعه فرانت-اند و بک-اند.
- NPM - از بزرگترین پکیج منیجرها در دنیا.
- قابلیت پردازش حجم بزرگی از فایلها.
معایب
- ناسازگاری در بهتر کردن API
- بهینه نبودن برای واداشتن پردازنده برای تمرکز روی یک وظیفه خاص
- نظرات متفاوت راجع به رویکرد ناهمزمانی
نودجیاس برای چه کاری مناسب است ؟
با وجود آنکه در رابطه با نودجیاس نظرات متفاوتی وجود دارد، اما در کل نودجیاس در چه جاهایی بیشترین درخشش را دارد؟ در زیر میتوانید نمونههایی را مشاهده کنید.
چت. برنامههای پیامرسان نمونههای عالی از اپلیکیشنهای بلادرنگ هستند، نودجیاس میتواند در این مورد بهترین کارایی را از خود نشان دهد. در چنین برنامههایی مفاهیمی چون چندکاربره بودن، ترافیک بالا، تمرکز دادهای و توانایی اجرا روی دستگاههای مختلف مطرح است. همچنین برای یادگیری نودجیاس یکی از انتخابهای خوب در زمان ساخت یک اپلیکیشن پیامرسان است، به این دلیل که تمام پارادایمهای ثابت در نودجی اس را استفاده میکند.
وب اپلیکیشنهای سرور-ساید. اگر بتوانید نودجیاس را در کنار Express.js قرار دهید و با آن کار کنید، میتوانید وب اپلیکیشنهای کلاسیک را اجرا کنید. این موضوعی است که روی آن بحثهای زیادی است اما اگر بخواهید اپلیکیشنی ایجاد کنید که استفاده کمتری از سیپییو میکند نودجیاس انتخاب خوبی است. ایده پشت این قضیه سادگی در روند توسعه آن است.
جریانات دادهای. جدای از روند درخواست http و پاسخگویی به آن ما در نودجیاس میتوانیم در خلال درخواست، روند پاسخگویی را نیز در پیش بگیریم، برای مثال موردی را که در دست بارگذاری است، پردازش کنیم.
داشبوردهای مانیتورینگ. برای جمعآوری و بصری سازی بلادرنگ داده -مثلا برای مشاهده میزان بازدیدهای وبسایت- نودجی اس انتخاب بسیار خوبی میتواند باشد.
در پایان
نودجیاس کامل و عالی نیست، اما برای ساختن وب اپلیکیشنهای مبتنی بر سمت سرور در جاوااسکریپت بسیار عالی عمل میکند. نودجیاس همواره در حال توسعه و رشد است. کار کردن با آن و یادگیری آن بسیار ساده است. برای صرفه جویی در هزینه و منابع انتخاب مناسبی است از طرفی دیگر APIهای بسیاری نیز برای ادغام با موبایل/وب دارد. پس یکی از برنامههای مستقل نیز به حساب میآید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید