اگر به مباحث برنامهنویسی وارد شده باشید حتما Node.js به گوشتان خورده است. Node.js را میتوان پلی میان جاوااسکریپت و زبان سرور دانست. در این مقاله قصد داریم به مطالبی پیرامون Node.js بپردازیم. ابتدا به سوال Node.js چیست پاسخ میدهیم، سپس تاریخچه ای از آن را بیان میکنیم و در ادامه کاربردهای آن را بررسی میکنیم. پیش از این در مقاله جاوااسکریپت چیست و چه کاربردی دارد به تفصیل به مباحث پیرامون زبان برنامهنویسی جاوااسکریپت پرداخته ایم.
Node.js چیست؟
نودجی اس یک پلتفرم یا محیط کد نویسی کدباز در سمت سرور برای نوشتن کدهای برنامهنویسی با زبان جاوااسکریپت برای توسعه برنامههای تحت شبکه است. برخی نود جی اس را این گونه تعریف میکنند: «نود جی اس جاوا اسکریپتی است که در سمت سرور اجرا میشود.» اشتباهی برخی افراد در تعریف و توضیح نود جی اس مرتکب میشوند این است که گمان میکنند نود جی اس یک کتابخانه یا فریم ورک جاوااسکریپت است. این تعریف کاملا اشتباه است. نود جی اس کتابخانه یا فریم ورک نیست بلکه یک پلتفرم برنامهنویسی است.
مروری بر تاریخچه Node.js
در سال 1996 اولین پلتفرم یا محیط برنامهنویسی با زبان جاوااسکریپت در سمت سرور تحت نام Live wire proweb توسط نت اسکیپ ایجاد شد. 13 سال بعد رایان دال در سال 2009 باعث به وجود آمدن Node.js شد. مشکلی که این پلتفرم داشت این بود که تنها از سیستم عاملهای لینوکس و مک پشتیبانی میکرد. رایان دال مسئول توسعه Node.js و شرکت جوینت مسئول حمایت آن بود. رایان دال در پی ضعفهای مربوط به سرورهای مثل آپاچی به معرفی Node.js پرداخت. Node.js خودش سرور دارد و اگر سروری بر روی سیستم شما موجود باشد از آن استفاده نمیکند.
اولین نسخه ای که از ویندوز پشتیبانی میکرد در سال 2011 منتشر شد و یک سال پس از آن رایان دال تصمیم گرفت از مدیریت پروژه کنارهگیری کند و این مسئولیت را بر عهده شریک خود و به وجود آورنده npm، ایزاک اشلوتر، بگذارد.
کامپایل کردن Node.js
Node.js از V8 به عنوان کامپایلر استفاده میکند. V8 م.تور گوگل است که با زبان C++ نوشته و توسط اسکریپت ECMA پیاده سازی شده است. این موتور کدهای جاوااسکریپتی Node.js را به سرعت کامپایل میکند. در سال 2014 تیموتی جی فنتیس مدیریت پروژه را بر عهده گرفت و در همان سال فدور اینداتنی آی او جی اس که شاخه و انشعابی از Node.js بود را ایجاد کرد. از آن پس Node.js و آی او جی اس از هم جدا شده و به شکل رقیبی درآمدند اما در سال 2015 تصمیم بر آن شد که دو پروژه یکی شود. به اینترتیب در ادامه در سال 2016 به بعد تنها به توسعه Node.js پرداختند و از کاربرها نیز خواسته شد که از این پس از Node.js استفاده کنند. امروزه Node.js قابلیت اجرا در تمام سیستم عاملها از جمله ویندوز، لینوکس و مک را دارد.
ویژگی non-blocking در Node.js (رویداد محوری)
هنگامیکه سایت طراحی شده بازدید کننده زیادی داشته باشد و همزمان از سمت کاربرهای زیادی درخواست یا دستوری را بگیرد (به این دستور Thread گفته میشود.) برای این که سایت بدون مشکل کار درست را انجام دهد و به اصطلاح سرور به سقف نچسبد، به RAM و سرورهای بیشتری نیاز است. این روش سنتی که به آن Threading میگویند منجر به صرف هزینه بیشتری میشود. سایتهای ساخته شده با Node.js چنین مشکلی را ندارند. در Node.js برخلاف زبانهایی مثل جاوا و PHP نحوه اتصال به سرور با سایر زبانها متفاوت بوده و به شکل رویداد محور است.
در Node.js تمام APIهای Node.js غیر هم زمان هستند و این باعث به وجود آمدن ویژگی non-blocking یا مسدودناپذیری میشود. در سایر زبانهای برنامهنویسی مانند PHP، برنامه در انتظار میماند تا پاسخ اول از API برسد اما در Node.js سرور مقیاس پذیر است و بعد از ارسال هر درخواست به انتظار پاسخ از API نمیماند و درخواست بعدی را ارسال میکند. به این مکانیزم مکانیزم ثبت رویداد یا رویداد محوری (event-driven) میگویند.
موارد استفاده از Node.js
زمانی که تصمیم دارید وارد دنیای برنامهنویسی شوید و زبان برنامهنویسی خاصی را بیاموزید، نوبت به انتخاب زبان برنامهنویسی شما میرسد. شما باید با توجه به اهداف خود یک زبان برنامهنویسی را جهت یادگیری و استفاده انتخاب نمایید. انتخاب درست مستلزم این است که بدانید هر کدام از زبانها چه کاربردی دارند. همانطور که گفته شد Node.js یک پلتفرم کد نویسی برای زبان برنامهنویسی جاوااسکریپت است که در سمت سرور به کار میرود. Node.js برای سایتهای مرتبط با تجارت الکترونیک یا سایتهای مربوط به شبکههای اجتماعی به کار میرود. اگر وبسایت مد نظر شما باید دارای سرویسهای بلادرنگ از جمله اتاق گفتگو یا بازیهای آنلاینی است که با مرورگر انجام میشود Node.js گزینه مناسبی برای شما محسوب میشود.
سایتها و برنامههای معروف طراحی شده با Node.js
یاهو، لینکداین، مایکروسافت، eBay، Paypal، IBM، Uber، Go daddy، موزیلا، نت فلیکس و بسیاری از برنامههای پربازدید و معتبر از Node.js استفاده میکنند که این نشان از اعتبار و به روز بودن Node.js دارد.
نظر دهید
با استفاده از فرم نظردهی زیر به بهبود خدمات کمک کنید.