معرفی پلتفرم جاوا اسکریپت Node.js
Node.js یک محیط برنامه نویسی برای زبان جاوا اسکریپت میباشد. شرکت هایی مانند IBM و مایکروسافت از نود جی اس استفاده میکنند. در ادامه به بررسی ویژگیهای Node.js و موارد استفاده از آن خواهیم پرداخت.
Node.js چیست؟
Node.js چیست
Node.js یک پلتفرم کدنویسی سمت سرور است که بر پایه موتور جاوا اسکریپت مرورگر گوگل کروم کدنویسی شده است. این پلتفرم توسط رایان داهل در سال ۲۰۰۹ ایجاد شده است و در حال حاضر آخرین نسخه آن ورژن 0.10.36 میباشد.
بر اساس اعلان مستندات رسمی تعریف Node.Js به شکل زیر عنوان میشود:
Node.js یک پلتفرم ایجاد شده بر پایه موتور جاوا اسکریپت گوگل کروم است که باعث سهولت ایجاد و مقیاسپذیری برنامههای تحت شبکه میشود. این پلتفرم از یک مدل I/O رویداد محور استفاده میکند که مسدود نشونده (non-blocking) است و همین امر باعث کاهش فشار موجود بر روی سرور و افزایش کارآیی میشود و این امر برای اجرای برنامههای مبتنی بر داده که بصورت بلادرنگ (Real-Time) بر روی سرورهای نامتمرکز استفاده میشوند بسیار مناسب است.”
Node.js یک پلتفرم کد باز برای گسترش برنامههای سمت سرور و تحت شبکه میباشد. این پلتفرم بر اساس زبان جاوا اسکریپت نوشته شده است و میزبانی و هاست Nodejs قابلیت پیادهسازی بر روی سیستمعاملهای ویندوز، لینوکس و سیستم عامل کامپیوترهای اپل را دارد.
این فریم ورک کتابخانهای عظیم از ماژولهای مختلف جاوا اسکریپت را فراهم میکند که سهولت در گسترش وباپلیکیشن ها را تا حد زیادی فراهم میآورد.
پیشنهاد وب رمز: معرفی فریم ورک انگولار (AngularJS) و کاربرد آن
ویژگیهای Node.JS:
ویژگی های node
در زیر برخی از مهمترین ویژگیهای این پلتفرم که باعث میشود انتخاب اول برنامهنویسها در طراحی سایت باشد ذکر شده است:
غیرهمزمانی و رویداد محوری: همهی 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! و … را نام برد.
برای دریافت پلتفرم جاوا اسکریپت Node.js کلیک کنید.
نمودار زیر مهمترین بخشهای Node.js را به تصویر کشیده است:
node.js - چه کسانی از Node.js استفاده میکنند
کجا از Node.js استفاده کنیم؟
در زیر برخی از موقعیتهایی که نود جی اس خودش را به عنوان یک پلتفرم کارا معرفی میکند آمده است:
– نرمافزارهای محدوده I/O (ورودی و خروجی)
– نرمافزارهای جریان دادهای (Data Streaing)
– دادههای نرمافزارهای بلادرنگ (Real-Time)
– برنامههای مبتنی بر JASON API
– برنامههای تک صفحهای
کجا از Node.js استفاده نکنیم؟
استفاده از این پلتفرم در برنامههای متمرکز بر CPU توصیه نمیشود.
Node.js یک پلتفرم بر اساس زبان جاوا اسکریپت است که امروزه توانسته با استفاده از تکنولوژی رویداد محوری که درون خود پایه گذاری کرده است، بسیاری از برنامهنویسان را جذب خود کند. همراه لیداوب با
Node.js یک پلتفرم بر اساس زبان جاوا اسکریپت است که امروزه توانسته با استفاده از تکنولوژی رویداد محوری که درون خود پایه گذاری کرده است، بسیاری از برنامهنویسان را جذب خود کند. همراه لیداوب باشید تا در این مقاله، این پلتفرم جذاب را بیشتر بشناسیم.
Node.js را بیشتر بشناسیم
Node.js در سال ۲۰۰۹ متولدشده است. نکتهای که در همین ابتدا باید به آن اشارهکنیم این است که Node.js یک پلتفرم است نه یک کتابخانه و نه یک
فریم ورک جدید مربوط به زبانهای برنامهنویسی که تازه کشف شده باشد. ما قرار است از این پلتفرم استفاده کنیم تا کدهای جاوا اسکریپتی را روی سرور برای ما اجرا کند. درواقع Node.js، جاوا اسکریپتی است که سمت سرور اجرا خواهد شد.
درباره پلتفرم نیز باید بگوییم که یک محیط یا یک فضایی است که ما از آن بهره میبریم برای کدنویسی.
Node.js و موتور جاوا اسکریپتی V8
js بر اساس موتور جاوا اسکریپتی گوگل موسوم به V8 طراحی شده است. اگر بخواهیم درباره این موتور توضیحی مختصر بدهیم باید بگوییم که این موتور توسط گوگل طراحی شده تا کدهای جاوا اسکریپتی را درون خودش سریعتر از قبل کامپایلر و اجرا نماید. این موتور به صورت متن باز منتشر شده و به زبان برنامهنویسی ++C نوشتهشده است. ضمن اینکه از استاندارد اکما اسکریپت نیز بهره میبرد. هر جا که شما دوست دارید تا جاوا اسکریپت را اجرا کنید، این موتور میتواند به شما کمک کند. امروزه یکی از دلایل استفاده زیاد از Node.js را همین موتور قدرتمند میدانند.
در ادامه مقاله میخواهیم درباره ویژگیهای Node.js بگوییم که شامل:
پلتفرم Node.js محدود به هیچ مرورگری نیست ضمن اینکه قابلیت اجراشدن در انواع سیستمعاملهای ویندوز، لینوکس و مک را نیز دارد.
جامعه بزرگی از مصرفکنندگان Node.js میتواند یک عامل مهم در انتخاب این پلتفرم باشد. شرکتهای بزرگی همچون Yahoo ،Microsoft ،Paypal ،eBay و ... که از Node.js استفاده میکنند و میتواند ملاکی برای اعتبار این پلتفرم بهحساب آورد.
پلتفرم Node.js خودش صاحب یک وب سرور است لذا اگر شما از یک وب سرور استفاده میکنید، Node.js از آن استفاده نمیکند، چون خودش دارد و برای اینکه برنامه شما را اجرایی کند از طریق خطوط دستوری به نام Command Line استفاده میکند (Command Line درواقع یک راه تعاملی برای برقراری ارتباط با سرور است و همانطور که از اسمش هم پیداست، زمانی که میخواهیم سرور کاری را برای ما انجام دهد میتوانیم به صورت نوشتن یک سری دستورات مشخص و تعیین شده این کار را انجام دهیم که طبعا سرعت بالاتری را هم در آخر نصیب ما خواهد کرد)
در این مورد میخواهیم درباره مهمترین ویژگی Node.js صحبت کنیم. عاملی که باعث شده است تا بسیاری از برنامهنویسان امروزه به دنبال استفاده از Node.js باشند. قبل از اینکه بخواهیم درباره این ویژگی صحبت کنیم، باید روال عادی در وب سرورهای سمت سرور را بررسی کنیم تا مزیتی که Node.js در اختیار ما قرار میدهد، پررنگتر جلوه کند.
شما در حال تایپ آدرس یک وبسایت هستید یا وارد صفحهای در یک وبسایت میشوید یا هرگونه ارتباطی که شما بهعنوان کاربر با سرور ایجاد میکنید، در زبانهای برنامهنویسی سمت سرور، باعث ایجاد یک Thread (یک موضوع یا یک بحث جدید) میکند و این Thread زمانی بسته میشود که شما به درخواست خود رسیده باشید، مثلا صفحهی وبسایتی که میخواهید برای شما بازشده باشد.
حالا فرض کنید که شما قرار است وارد یک وبسایت پرطرفدار شوید، وبسایتی که بازدیدکنندگان آن بسیار زیاد هستند و طبعاً همه این افراد در بین صفحات این وبسایت در حال جستجو کردن هستند یا مطالب مختلف را مشاهده میکنند، در این حالت است که Thread های بسیار زیادی ایجاد میشوند. اینجاست که سرور احتمالاً به سقف میچسبد و بایستی که سرورهای موجود را افزایش دهیم که خود یک هزینه اضافی است. البته باید بگوییم که مشکل اصلی ما در اینجا، حجم بالای اطلاعات ورودی و خروجی است که به روشی که در بالا گفتیم صورت میگیرد.
Node.js و non blocking I/O
در مثال بالا حالتی را گفتیم که معمول بود اما حال میخواهیم برخورد Node.js را در این مواقع بررسی کنیم. تفاوتی که Node.js دارد این است که از عملیات ورودی-خروجی یا I/O بهصورت رویداد محور استفاده میکند که دارای ویژگی non blocking است و مسدود شونده نیست (اصطلاحا به این روش non blocking I/O میگویند). درواقع در این روش، هر اتصالی که کاربر با سرور ایجاد میکند بهصورت یک رویداد تعریف میشود نه یک Thread (تمامی درخواستها و اتصالات بهصورت رویدادها مدیریت میشوند درحالیکه فقط یک Thread شکلگرفته است). در یک جمله اگر بخواهیم این مورد را خلاصه کنیم این است که با ایجاد حالت رویداد محور، ما برای رسیدن به نتیجهای که مخاطب به دنبال آن است، دیگر نباید منتظر عملیات ورودی-خروجی باشیم، اینجا صرفا رویدادها هستند که دریافت نتیجه را سبب میشوند.
آخرین ویژگی که درباره آن میخواهیم صحبت کنیم، ماژولها و امکاناتی است که Node.js آنها را دارد و کار شما در استفاده از این پلتفرم راحتتر خواهد کرد.
نتیجهگیری
در این مقاله درباره یک پلتفرم سریع صحبت کردیم. پلتفرمی که میتواند برای وبسایت شما با بازدیدکنندگان زیاد، بسیار خوب عمل کند. پلتفرمی که دارای ماژولها و امکانات زیادی است که شمارا میتواند کمک کند. Node.js مرتبط با سرعت و کیفیت بیشتر کار خود را انجام میدهد و این باعث شده است که حتی برنامهنویسان غیرحرفهای هم به سراغ آن بروند و برنامههای حرفهای بر اساس آن طراحی کنند. اگر به دنبال یک فضایی هستید که کدهای جاوا اسکریپتی خود را اجرایی کنید و خیلی سریع به درخواست مخاطب خود جواب دهید، Node.js میتواند یک انتخاب خوب برای شما باشد
منبع: طراحی سایت
مطلبی دیگر از این انتشارات
اشتباهات برنامه نویسان مبتدی
مطلبی دیگر از این انتشارات
یک فنجان جاوا - دیزاین پترن ها - Object Pool
مطلبی دیگر از این انتشارات
استفاده از Icecream بجای Print برای Debug در پایتون