شما به احتمال زیاد دانش کافی کار با HTML و CSS رو دارید و در PHP هم ماهر هستید و احتمالا تجربه کار با جاوا اسکریپت را هم دارید.تمام اینها مهارت هایی هستند که امروزه یک توسعه دهنده و طراح وب سایت مدرن به آنها نیاز دارد تا بتواند وب سایت‌های قدرتمند طراحی کند. چرا مهارت های خود را با یادگیری چیزی های کاملا جدید به سطح بالاتر انتقال نمی دهید؟

با این حال تجربه کار جاوا اسکریپت هم که دارید پس فرصت خوبیست که چیزی شبیه به node.js را یاد بگیرید. اگر می خواهید مهارت های طراحی سایت خود را افزایش دهید پس بهتر است آموزش node.js را در نظر بگیرید. نود یکی از ترند‌های طراحی سایت است که در حال حاضر همه درباره آن صحبت می کنند و شما نیز نباید از این مسیر دور بمانید.

 

Node.js چیست؟

Node.js یک پلتفرم کدنویسی سمت سرور است که بر پایه موتور جاوا اسکریپت مرورگر گوگل‌ کروم کدنویسی شده استاین پلتفرم توسط رایان داهل در سال ۲۰۰۹ ایجاد شده است و در حال حاضر آخرین نسخه آن ورژن 0.10.36 می‌باشد.

بر اساس اعلان مستندات رسمی تعریف Node.Js به شکل زیر عنوان می‌شود:

“Node.js یک پلتفرم ایجاد شده بر پایه موتور جاوا اسکریپت گوگل کروم است که باعث سهولت ایجاد و مقیاس‌پذیری برنامه‌های تحت شبکه می‌شوداین پلتفرم از یک مدل I/O رویداد محور استفاده می‌کند که مسدود نشونده (non-blocking) است و همین امر باعث کاهش فشار موجود بر روی سرور و افزایش کارآیی می‌شود و این امر برای اجرای برنامه‌های مبتنی بر داده که بصورت بلادرنگ (Real-Time) بر روی سرورهای نامتمرکز استفاده می‌شوند بسیار مناسب است.”

Node.js یک پلتفرم کد باز برای گسترش برنامه‌های سمت سرور و تحت شبکه می‌باشداین پلتفرم بر اساس زبان جاوا اسکریپت نوشته شده است و قابلیت پیاده‌سازی بر روی سیستم‌عامل‌های ویندوز، لینوکس و سیستم عامل کامپیوترهای اپل را دارد.

این فریم ورک کتابخانه‌ای عظیم از ماژول‌های مختلف جاوا اسکریپت را فراهم می‌کند که سهولت در گسترش وب‌اپلیکیشن ها را تا حد زیادی فراهم می‌آورد.

ویژگی‌های Node.JS

در زیر برخی از مهم‌ترین ویژگی‌های این پلتفرم که باعث می‌شود انتخاب اول برنامه‌نویس‌ها باشد ذکر شده است:

غیرهمزمانی و رویداد محوری: همه‌ی API های کتابخانه Node.js غیرهمزمان می‌باشند که همین امر باعث مسدودناپذیری (non-blocking) آن می‌شوداین بدان معناست که که Node.js در بستر سرور هیچگاه در انتظار بازگشت اطلاعات از API نمی‌ماندسرور پس از صدا زدن یک API به سمت API بعدی حرکت می‌کند و برای اطلاع از وضعیت API قبلی از مکانیزم ثبت رویداد استفاده می‌کند.

سرعت بالا: با توجه به این که نود جی اس بر پایه نسخه ۸ موتور جاوا اسکریپت گوگل کروم پیاده‌سازی شده است در اجرای کدها بسیار سریع عمل می‌کند.

تک موضوع اما بسیار مقیاس‌ پدیرنود جی اس از یک مدل تک موضوعی به همراه حلقه رویددادها استفاده می‌کندمکانیزم رویداد باعث می‌شود که سرور به صورت مسدود نشونده پاسخ‌ها را ارسال کند و همین امر باعث می‌شود بر خلاف مکانیزم‌های سنتی که سرور را محدود به چند درخواست برای پردازش درخواست‌ها می‌کرد سرور بسیار مقیایس‌پذیر شود.

نود جی اس از یک برنامه تک موضوعی استفاده می‌کند و همان برنامه می‌تواند سرویسی برای تعداد بسیار بیشتری از درخواست ها نسبت به مکانیزم های قدیمی سرور مثل HTTP سرور آپاچی فراهم کند.

عدم وجود بافرینگ: این پلتفرم هیچ داده‌ای را بافر نمی‌کند و داده‌های خروجی را به صورت تکه‌تکه منتشر می‌کند.

چه کسانی از Node.js استفاده می‌کنند؟

در زیر لینکی مربوط به گیت‌هاب وجود دارد که لیستی جامع از پروژه ها، نرم‌افزارها و شرکت‌هایی که از Node.js استفاده می‌کنند را مشخص کرده استاز جمله مهمترین اعضای این لیست می‌توان eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo! و … را نام برد.

https://github.com/nodejs/node-v0.x-archive/wiki/projects,-applications,-and-companies-using-node

نمودار زیر مهم‌ترین بخش‌های Node.js را به تصویر کشیده است:

node.js2

کجا از Node.js استفاده کنیم؟

در زیر برخی از موقعیت‌هایی که نود جی اس خودش را به عنوان یک پلتفرم کارا معرفی می‌کند آمده است:

– نرم‌افزارهای محدوده I/O (ورودی و خروجی)

– نرم‌افزارهای جریان داده‌ای (Data Streaing)

– داده‌های نرم‌افزارهای بلادرنگ (Real-Time)

– برنامه‌های مبتنی بر JASON API

– برنامه‌های تک صفحه‌ای

کجا از Node.js استفاده نکنیم؟

استفاده از این پلتفرم در برنامه‌های متمرکز بر CPU توصیه نمی‌شود.

معایب نود جی اس ؟

nodejs هم معایب خاص خودش را دارد. به عبارت ساده تر بزرگترین نقطه ضعف این است که هنوز nodejs نسبتا جدید است و در واقع هنوز مراحل ابتدایی خود را پشت سر می گذارد. در حالی که شما برای کار با Node می توانید آن را بر روی سرور یا VPS خود قرار دهید اما هنوز به آسانی در تمام پلتفرم ها موجود نیست، به خصوص وقتی که موضوع بودجه و استفاده از هاست اشتراکی مطرح است. بیشترهاست‌های اشتراکی هنوز پشتیبانی از node.js را به پلتفرم خود اضافه نکرده اند. در حال حاضر بسیاری از برنامه های تحت وب از LAMP استفاده می کنند، پس شاید زمان مناسب برای استفاده از node.js نیست. اما همانطو که گفتم تمام این مسائل زود گذر هستند چرا که nodejs دستاوردهای زیادی دارد و همین باعث محبوبیتش شده است، مطمئن باشید به زودی با گذر زمان امکان پشتیبانی از آن در مقیاس بزرگتری میسر خواهد شد و درست مثل رقبای خود سهم عادلانه ای از اینترنت خواهد داشت.

منابع آموزشی برای یادگیری nodejs