مروری بر Node js

همانطور که می دانید جاوا اسکریپ یکی از برترین و محبوب ترین زبان های برنامه نویسی می باشد که در سرتاسر جهان مورد استفاده قرار می گیرد، Node.js درواقع پلتفرمی است که سمت سرور کار می کند و بر پایه جاوا اسکریپ بنیان گذاری شده است.اگر تاریخچه جاوا اسکریپت را مطالعه کرده باشید حتما نام آقای Ryan Dahl به گوشتان خورده است ، در واقع این آقا برای اینکه قدرتمندی جاوا اسکریپ را به رخ سایر زبان های برنامه نویسی بکشاند ، Node.js را معرفی کرد تا به همگان ثابت کند که این زبان برنامه نویسی نباید فقط برای بخش Front-end صفحات وب مورد استفاده قرار گیرد.در واقع نوعی محیط اجرای تک‌ رشته‌ای، منبع باز و «چند‌سکویی» (Cross Platform) است که از آن برای ساخت برنامه‌های کاربردی شبکه و سمت سرور استفاده می‌شود. برنامه‌های ساخته شده با Node.js بسیار سریع و مقیاس‌پذیر هستند. Node.js بر روی موتور جاوا اسکریپت V8 اجرا می‌شود و برای کاربردهای بلادرنگ گزینه بسیار مناسبی به حساب می‌آید.در حقیقت Node js بود که به زبان جاوا اسکریپت این قدرت را داد که بتواند کد های خود را در محیط سرور اجرا کند و تا قبل از آن تمامی کد ها داخل مرورگر اجرا می شد. به کمک Node.js شما می توانید برنامه های گسترده و قابل گسترش بسازید که هیچ محدودیتی ندارند!نود تنها پلتفرم سمت سرور جاوا اسکریپ است ؟باید بدانید که قبل از نود جی اس هم نسخه هایی منتشر و یا نزدیک به منتشر شدن می رسید که سمت سرور کار می کردند ، اما به هیچ عنوان قدرت رقابت با دیگر زبان های این حوزه را نداشتند و سریع شکست می خوردند.در واقع جاوا اسکریپت از زبان هایی بود که همواره در حال رشد و توسعه بود (از سال ۱۹۹۵ به بعد) ، اما تا مادامی که Node JS منتشر نشده بود کاربرد خاصی در زمینه Back-end نداشت و مورد استفاده هیچ برنامه نویسی قرار نمی گرفت.نود جی اس کراس پلتفرم استپلتفرم های معروفی مانند NW.js و همچنین Electron.js به ما این قابلیت را می دهند که بتوانیم با زبان نود جی اس برنامه هایی بنویسیم که در ویندوز هم قابل اجرا باشند.یعنی اینکه برنامه های تحت وب خود را بتوانیم در محیط لینوکس ، ویندوز و مک مورد استفاده قرار دهیم.اما این موضوع چقدر اهمیت دارد ؟ تصور کنید تیمی دارید که همگی تسلطی کافی به node.js دارند ، این تیم می تواند بدون اینکه یک خط از زبان های برنامه نویسی سیستم عامل که C و C# می باشند را بلد باشند ، برنامه های خود را تحت ویندوز و لینوکس و مک اجرا کنند.یعنی با یک تیم برنامه نویسی وب می تواند برنامه های تحت ویندوز را هم تا جای ساپورت کرد.کاربرد های نود جی اس ( Node.js )حتما تا الان متوجه شده اید که استفاده از نود جی اس می تواند بسیار بسیار کارامد باشد ، حال در این بخش می خواهیم به کاربرد های این زبان بپردازیم :ساخت برنامه‌های تک صفحه ای یا SPAبرنامه های تک صفحه ای یا همان SPA که مخفف (single page app) می باشد را می توان به راحتی با زبان نود جی اس ساخته و پرداخته کرد.درواقع این صفحات به برنامه هایی گفته می شود که تمامش در یک صفحه گنجانده شده است و تمامی رفت و آمد ها حول این یک صفحه می باشد.از برنامه های SPA برای ساختن شبکه های اجتماعی ، سایت های اشتراک ویدیو و یا حتی سرویس های ایمیل می توان نام برد که می توان معروف ترین این برنامه ها را شبکه اشتراک ویدیو یوتیوب نام برد.اما چرا زبان Node.js برای ساختن برنامه های تک صفحه ای کاربرد مناسبی دارد ؟ به دلیل اینکه این زبان از برنامه نویسی نامتقارن یا به اصطلاح asynchronous پشتیبانی می کند که به خوبی برای ساختن چنین برنامه هایی کار می کند.ساخت برنامه های RTA یا لحظه ایبرنامه های RTA که مخفف عبارت (real-time app) می باشند به برنامه هایی گفته می شود که در لحظه دچار تغییراتی می شوند، از برنامه هایی که به صورت RTA نام برده می شوند می توان به google sheets اشاره کرد.به طور کلی به به برنامه هایی که شامل کنفرانس های ویدیوی و یا صوتی و یا ابزار های مدیریتی پروژه هستند و عملیات های سنگین را در لحظه انجام می دهند ، برنامه های در لحظه یا real-time app گفته می شود.ساخت چت رومچت روم ها زیر مجموعه برنامه های RTA می باشند، امکان ندارد که شما هم از این برنامه های کاربردی استفاده نکنید ، روزانه میلیون ها پیام در این برنامه های مخابره می شود.بسیاری از شرکت های بزرگ نمی خواهند که به یک برنامه خارجی وصل باشند و کارهای امنیتی خود را در آن برنامه های مخابره کنند ، پس نیازمند هستند که یک چت روم شخصی بسازند تا تمام کارمندان فقط در این چت روم درباره کار های شرکت صحبت کنند.زبان Node.js می تواند برای این برنامه ها یک گزینه فوق العاده باشد ، ساختن چت روم و چنین برنامه ای نیازمند برنامه ریزی بلد مدتی است که بعد ها به مشکل دچار نشوید ، از سری مشکلات رایج این موضوع می تواند به ترافیک کاربران ، سرعت بالای پیام ها ، ارسال پیام های حجیم و سبک در یک زمان و…اشاره کرد.تمامی موارد گفته شده را می توان به کمک زبان نود جی اس و البته کمک یکی از فریم های ورک معروف جاوا اسکریپت به نام Express.js عملی کرد.ساختن بازی های آنلاینی که توسط مرورگر پشتیبانی می شوداگر تیتر قبلی را کامل مطالعه کرده باشید حتما از ارزشمندی یک چت روم شخصی باخبر می شود ، حال تصور کنید که بخواهید در کنار صحبت هایی که روزانه انجام می شود بتوانید یک بازی آنلاین هرچند سبک را ارائه دهید! جذابیت چند برابر شد نه ؟به کمک زبان نود جی اس می توانید بازی های تحت وب بسازید ، البته این بازی ها با مسلط بودن به تنها Node.js کافی نیست و شما باید بر روی زبان نشانه گذاری HTML5 و فریم ورک های دیگر جاوا اسکریپت مانند Express.js و Socket.io و یا … تسلط کافی داشته باشید.از بازی های که می توانید به کمک این زبان ها بسازید می توان به دو بازی دو بعدی Ancient Beast و PaintWar اشاره کرد.صد در صد تا الان متوجه شدید که زبان نود جی اس زبان سمت سروره ! تا قبل از پیدایش این زبان تا حرف زبان های سمت سرور می اومد وسط همه فکرا می رفت طرف زبان PHP و ASP.Net. اما با ظهور این زبان معلوم شد که جاوا اسکریپت هم توانایی رقابت بالایی با این زبان های سمت سرور را دارد.