در دنیای امروز کاربرد زبان برنامه نویسی جاوااسکریپت را در برنامههای مختلف و تاثیر آن در زندگی دیجیتالی را مشاهده میکنید. هرچند جاوا اسکریپت را کنار HTML و CSS هسته وب میدانند اما از این زبان سطح بالا و مفسری به جزء وب در ساخت اپلیکیشنهای موبایل، بازیهای رایانه ای، برنامههای دسکتاپ و غیره نیز استفاده میشود. همیشه یکی از دغدغههای برنامه نویسان جاوا اسکریپت این بود که بتوانند کدهای خود را به جز مرورگر کاربر در سمت سرور هم اجرا کنند. یعنی به کمک جاوا اسکریپت بتوانند ظاهر و منطق سرویس تحت وب خود را در کنار هم ایجاد کنند. چون برای برنامه نویسی سمت سرور سراغ زبان هایی مثل PHP یا Ruby نروند. یکی از محیطهای هایی که به برنامه نویسان اجازه میدهد کدهای جاوا اسکریپت خود را سمت سرور اجرا کنند، Node.js میباشد. در این مقاله با تعریف و مفهوم node.js آشنا میشویم و سپس کاربردها و ویژگیهای این پلتفرم را مورد بررسی قرار میدهیم.
یک پلتفرم کدنویسی سمت سرور است که بر پایه موتور جاوا اسکریپت مرورگر گوگل کروم کدنویسی شده است. این پلتفرم توسط رایان داهل در سال ۲۰۰۹ ایجاد شده است و در حال حاضر آخرین نسخه آن ورژن 0.10.36 میباشد.
بر اساس اعلان مستندات رسمی تعریف Node.Js به شکل زیر عنوان میشود:
Node.js یک پلتفرم ایجاد شده بر پایه موتور جاوا اسکریپت گوگل کروم است که باعث سهولت ایجاد و مقیاسپذیری برنامههای تحت شبکه میشود. این پلتفرم از یک مدل I/O رویداد محور استفاده میکند که مسدود نشونده (non-blocking) است و همین امر باعث کاهش فشار موجود بر روی سرور و افزایش کارآیی میشود و این امر برای اجرای برنامههای مبتنی بر داده که بصورت بلادرنگ (Real-Time) بر روی سرورهای نامتمرکز استفاده میشوند بسیار مناسب است.”
Node.js یک پلتفرم کد باز برای گسترش برنامههای سمت سرور و تحت شبکه میباشد. این پلتفرم بر اساس زبان جاوا اسکریپت نوشته شده است و میزبانی و هاست Nodejs قابلیت پیادهسازی بر روی سیستمعاملهای ویندوز، لینوکس و سیستم عامل کامپیوترهای اپل را دارد.
فریم ورکهای زیادی با زبان جاوا اسکریپت طراحی شده اند و در بخشهای مختلف مورد استفاده قرار میگیرند. برخی از فریم ورکهای معروف جاوا اسکریپت عبارتند از: Angular، React، Meteor.js، Vue.js و غیره. استفاده از این فریم ورکها تا حد زیادی کارایی و امنیت محصول ما را بالا برده و درمقابل هزینهها را هم کاهش میدهد.
شما می توانید سه مقاله زیر را در حوزه برنامه نویسی و بررسی فریم ورک ها مطالعه فرمایید:
فریم ورک angular js چیست و چه قابلیتی دارد؟ (راهنمای جامع)
آنچه برنامه نویسان جاوا اسکریپت باید در مورد vue.js بدانند
فریم ورک react js چیست و چه کاربردی دارد؟
آنچه در این نوشته خواهیم داشت
دلایل استفاده از Node.Js
Node.js بازدهی و انعطاف بالایی دارد
نود در کنار V8 engine از زبان برنامه نویسی C++ استفاده کرده و سرعت بسیار بالایی دارد. هم V8 هم Node.js به صورت مرتب آپدیت شده و با قابلیتهای جدید جاوا اسکریپت هماهنگ میشوند، همینطور بازدهی آنها بالاتر رفته و مشکلات امنیتی آنها نیز برطرف میشود. همینطور به دلیل استفاده از زبان جاوا اسکریپت انتقال فایل JSON (متداولترین قالب انتقال داده در وب) به طور پیش فرض بسیار سریع خواهد بود.
Node.js کراس پلتفرم است
پلتفرم هایی مثل Electron.js یا NW.js به شما اجازه میدهند با نود جی اس برنامههای دسکتاپ بسازید. به این ترتیب میتوانید برخی از کدهای برنامه تحت وب خود را در محیط ویندوز، لینوکس و مک اواس استفاده کنید. در واقع به کمک نود جی اس، همان تیمی که روی نسخه وب محصول کار میکنند، بدون نیاز به دانش تخصصی در زبانهای C# یا Objective C یا سایر زبان هایی که برای ساخت برنامههای Native به کار میروند، میتوانند یک برنامه دسکتاپ بسازند.
Node.js میتواند با میکروسرویسها ترکیب شود
اکثر پروژههای بزرگ در اول کار ساده بودند و در یک نسخه MVP معرفی شده بودند. اما به مرور زمان این سرویسها بزرگتر شده و نیاز به اضافه کردن قابلیتهای جدید در آنها حس میشد. گاهی وقتها بزرگ شدن سرویس و اضافه کردن امکانات جدید به محصول میتواند برای تیم توسعه دهندگان تبدیل به یک کابوس شود. اما یک راه حل مناسب برای حل این مشکل استفاده از میکروسرویس است. میکروسرویس کمک میکند برنامه خود را بخشهای کوچک تقسیم کنید که هر بخش میتواند توسط تیم متفاوت و حتی زبانی متفاوت نوشته شود. نود جی اس در کار با میکروسرویسها عملکرد بسیار خوبی دارد.
کاربردهای Node.Js
ساخت برنامههای تک صفحه ای (SPA)
SPA مخفف single-page app بوده و برنامه هایی گفته میشود که تمام بخشهای آن در یک صفحه پیاده سازی میشود. از SPA بیشتر برای ساخت شبکههای اجتماعی، سرویسهای ایمیل، سایتهای اشتراک ویدئو و غیره استفاده میشود. یکی از معروفترین سایت هایی که به این شکل ساخته شده است، سرویس اشتراک ویدئو یوتیوب است. از آنجایی که نود جی اس از برنامه نویسی نامتقارن یا asynchronous به خوبی پشتیبانی میکند، برای ساخت برنامههای SPA انتخاب خوبی به حساب میآید.
ساخت برنامههای RTA
RTA مخفف real-time app میباشد. یعنی برنامه هایی که به صورت لحظه ای دارای تغییرات مختلفی هستند. به احتمال زیاد قبلا با این نوع برنامهها کار کرده اید. برای مثال Google Sheets، Spreadsheets یا Slack از این دست برنامهها هستند. در کل برنامههای تعاملی، ابزارهای مدیریت پروژه، کنفرانسهای ویدئویی و صوتی و سایر برنامههای RTA عملیاتهای سنگین ورودی/خروجی انجام میدهند.
ساخت چت روم
یکی از معروفترین نمونههای برنامه RTA چت رومها و پیام رسانها هستند. احتمالا روزانه از پیام رسان و چت رومهای مختلف استفاده میکنید و دوست دارید یک چت روم برای خودتان بسازید. در واقع نود جی اس یک انتخاب عالی برای این کار است. اگر قصد ساخت چنین محصولی را دارید، باید به موارد مختلفی مثل تحمل ترافیک زیاد کاربران، سبک بودن محصول، سرعت بالای ارسال پیامها وغیره توجه داشته باشید. تمام این موارد به کمک نود جی اس و یک فریم ورک جاوا اسکریپت مثل Express.js در سمت سرور قابل پیاده سازی است.
ساخت بازیهای آنلاین تحت مرورگر وب
ایده ساخت چت روم جذاب است، اما جذابیت آن زمانی بیشتر میشود که یک بازی هم برای مرورگر وب بنویسید و کنار آن بازی یک چت روم هم ارائه کنید. به کمک نود جی اس میتوان به توسعه بازی تحت وب پرداخت. در واقع با ترکیب تکنولوژیهای HTML5 و ابزارهای جاوا اسکریپت ( مثل Express.js یا Socket.io یا غیره ) میتوانید بازیهای دوبعدی جذابی مثل Ancient Beast یا PaintWar بسازید.
آیا Node.js فریمورک است؟
فریمورک به مجموعه ای از کتابخانه ها و ابزار ها گفته می شود که کار برنامه نویس را آسان کرده و از زیاد و دوباره نویسی کدها جلوگیری میکند. اما در ارتباط با نود جی اس اینگونه نیست و چیزی فراتر از یک فریمورک است! جاوا اسکریپت دارای فریمورک های بسیاری قوی چون React js ، Angular و Vue.js است که در پیاده سازی وب اپلیکیشن ها بسیار قدرتمند عمل می کنند.
اما Node js در واقع یک run-time environment یا محیط اجرایی مبتنی بر جاوا اسکریپت است و کاربردهای آن بسیار بیشتر از یک فریمورک است. ما از Node js علاوه بر توسعه برنامه های وب میتوانیم در Rest APi ها، رباتیک، میکروکنترلرها و … استفاده کنیم.
در این زمینه مقاله «فریم ورک چیست و چه ویژگی هایی دارد» را مطالعه کنید.
جمعبندی
زمانی که صحبت از برنامهنویسی در سمت سرور میشود، شاید شاید php در ذهنتان نقش ببندد. ولی زبان جاوا اسکریپت با معرفی نود جی اس و امکانات قابل قبول در حوزه برنامه نویسی سمت سرور هم وارد این حوزه شده است. نود جی اس یک محیط اجرایی رایگان برای زبان جاوا اسکریپت است که کارهای متنوعی انجام میدهد. نود جی اس رایگان است، یک جامعه بزرگ از برنامه نویسان پشت آن قرار دارند و یک پکیج منیجر بسیار قدرتمند به نام NPM یا Node Package Manager برای آن ساخته شده که نزدیک به نیم میلیون پکیج در آن قرار دارد. امیدوارم اگر برای ورود به این حرفه کمی شک داشتهاید خواندن این مطلب اطلاعاتتان را در این حوزه افزایش داده باشد.