معرفی و کاربرد پلتفرم Node.js :
Node.js یک محیط برنامه نویسی برای زبان جاوا اسکریپت میباشد. شرکت هایی مانند IBM و مایکروسافت از نود جی اس استفاده میکنند. Node.js یک پلتفرم سمت سرور مبتنی بر موتور جاوا اسکریپت گوگل کروم (V8 Engine) میباشد.
امروزه جاوا اسکریپت در جاهای مختلف حضور دارد و کارهای متنوعی با آن انجام میشود. هرچند جاوا اسکریپت را کنار HTML و CSS هسته وب میدانند اما از این زبان سطح بالا و مفسری به جزء وب در ساخت اپلیکیشنهای موبایل، بازیهای رایانه ای، برنامههای دسکتاپ و غیره نیز استفاده میشود.
چرا باید از Node.js استفاده کنیم؟
• نودجیاس در مقایسه با PHP و Ruby سریع تر است.
ه از امنیت بیشتر در مقابل بار اضافی اعمال شده به سرور برخوردار است، به خصوص در زمان وقوع حملههای DDOS که بقیه نرمافزارهای سرور مانند SSH قابل دسترسی و پاسخ دهنده باقی میمانند.
• بیشترین موارد استفاده از نودجیاس مربوط به نوشتن API است، که باعث می شود توسعه دهنده های سمت کلاینت بتوانند به اطلاعات دسترسی داشته و از آنها استفاده کنند.
• پایین بودن زمان پاسخگویی در Node.js : Node.js یک پلتفرم single-threaded و asynchronous است. هیچ کدام از پردازش های مرتبط با I/O سایر پردازش ها را متوقف نمیکند.
• این به معنای آن است که شما میتوانید در یک زمان هم از روی دیسک یک فایل را بخوانید هم یک ایمیل بفرستید و هم بر روی پایگاه داده Query بزنید.
• بسیاری از وبسرورها بر مبنای تکنیک Threading کار میکنند یعنی برای هر درخواست (request)، یک thread ایجاد میکند و به تبع آن بخشی از رم (مثلا ۱ مگابایت) از RAM سرور اشغال میشود و این کار تا جایی که RAM سرور اجازه دهد ادامه مییابد. تکنیک Threading برای کارهایی که نیاز به تعداد بالایی کانکشن همزمان دارند، مناسب نیست.
• اما در Node.js هر کدام از درخواست هایی که به وب سرویس میرسند یک Process جدید Node.js ایجاد نمی کنند، بجای آن در اغلب اوقات فقط و فقط یک Process مربوط به Node.js در حال اجرا است که به ارتباطات و درخواستها گوش می دهد.
• کدهای جاوااسکریپت در Thread اصلی و عملکردهای مرتبط با I/O در Thread های دیگری اجرا میشوند.
• ماشین مجازی (Google V8) در Node.js که کدهای جاوا اسکریپت را اجرا میکند دارای ویژگی کامپایل در زمان اجرا می باشد. وقتی این ماشین مجازی کدهای جاوا اسکریپت را میگیرد در زمان اجرا آنها را به کدهایی نزدیک به کدهای زبان ماشین کامپایل میکند.
• این کار باعث میشود توابعی که به دفعات صدا زده میشوند با تبدیل شدن به کدهای شبیه کد ماشین به طور قابل ملاحظهای سرعت اجرای کدها را بهبود دهد.
• دلیل آخر استفاده از Node.js جامعه بزرگ برنامه نویسهای آن و وجود کتابخانههای open source زیاد آن است. در اغلب مواردی که شما نیاز خواهید داشت، کتابخانه از قبل تعریف شده ای وجود دارد که می توانید از آن استفاده کنید و نیاز نیست برای خیلی از اصول اولیه و مفاهیم پایهای خودتون کد نویسی کنید.
مزایا Node.js
• پاسخگوی تعداد زیادی کاربر و بسیار سریع
• پایین بودن زمان پاسخگویی در Node.js
• خطایابی بسیار ساده و سریع در این تکنولوژی
• جامعه کاربری بزرگ
• متن باز بودن
• سازگاری با سیستم عامل های مختلف لینوکس، ویندوز، مک
• پشتیبانی از Caching
معایب Node.js
nodejs هم معایب خاص خودش را دارد. سیستمهای نوشته شده با Node JS شدیدا وابسته به برنامه نویس خود هستند چون به دلیل نداشتن یک کتابخانه استاندارد برای JavaScript از استانداردهای پراکندهای برای نوشتن سورس کدها استفاده میشود.
یک مشکل دیگر این است که هنوز nodejs نسبتا جدید است و در واقع هنوز مراحل ابتدایی خود را پشت سر می گذارد.
Nodejs به آسانی در تمام پلتفرم ها موجود نیست و بیشتر هاست های اشتراکی از آن پشتیبانی نمی کنند و این موضوع در زمانیکه موضوع بودجه مطرح باشد، مشکل ایجاد می کند، اما به آسانی قابل راه اندازی روی سرور یا vps است .
در مجموع باید بگوییم Node.js در آیندهای نه چندان دور به یکی از زبانهای مهم توسعه کسبوکار تبدیل خواهد شد.
پلتفرم Node.js می تواند برای ساخت اپلیکیشن هایی مانند موارد زیر به کار آید:
1. تجارت الکترونیک
2. شبکه های اجتماعی
3. سرویس های بلادرنگ
4. جریان داده ها
چه برنامه هایی از Node.js استفاده کرده اند؟
• Walmart
• E-bay / PayPal
• Microsoft
• LinkedIn
• Yahoo
• Google
جمع بندی
وقتی از برنامه نویسی سمت سرور صحبت میکنیم، احتمالا اولین چیزی که به ذهنتان میرسد PHP است، بعد هم احتمالا ذهنتان به سمت مایکروسافت و تکنولوژی ASP.Net میرود. اما جاوا اسکریپت هم با معرفی نود جی اس و امکانات قابل قبول در حوزه برنامه نویسی سمت سرور هم ورود کرد. نود جی اس یک محیط اجرایی رایگان برای زبان جاوا اسکریپت است که کارهای متنوعی انجام میدهد. نود جی اس رایگان است، یک جامعه بزرگ از برنامه نویسان پشت آن قرار دارند و یک پکیج منیجر بسیار قدرتمند به نام NPM یا Node Package Manager برای آن ساخته شده که نزدیک به نیم میلیون پکیج در آن قرار دارد.