Node.js چیست؟

Node.js یک محیط اجرا و چارچوب متن باز و چند پلتفرمی برای اجرای برنامه های وب خارج از مرورگر مشتری است.

این یک زبان برنامه‌نویسی سمت سرور است که بیشتر برای سرورهای رویداد محور مانند وب‌سایت‌های استاندارد و سرویس‌های API بک‌اند استفاده می‌شود، اگرچه هدف از ایجاد آن توسعه یک معماری زمان واقعی و مبتنی بر فشار در ذهن بود. هر مرورگر موتور JS خود را دارد و node.js یکی از آنهاست. موتور جاوا اسکریپت V8 در Google Chrome برای تامین انرژی Node.js استفاده می شود. کمی پیچیده نیست؟
در اصطلاح اولیه، این بدان معناست که کل سایت‌ها ممکن است بر روی یک «پشته» اجرا شوند و به شما این امکان را می‌دهند که به جای توسعه و نگهداری، روی دستیابی به اهداف تجاری پروژه تمرکز کنید.

از آنجایی که Node.js منبع باز است، استفاده از آن رایگان است و به طور مداوم توسط یک جامعه توسعه دهندگان در سراسر جهان به روز می شود و بهبود می یابد.

نکته مهمی که باید در مورد Node.js درک کرد این است که این Node.js واقعاً نه یک چارچوب است و نه یک کتابخانه، مانند نرم افزارهای کاربردی سنتی، بلکه یک محیط زمان اجرا است.

یک محیط زمان اجرا (همچنین به عنوان RTE شناخته می شود) مجموعه ای از API های وب است که یک توسعه دهنده ممکن است از آنها برای ایجاد کد استفاده کند، و همچنین یک موتور جاوا اسکریپت که آن کد را تجزیه می کند. این امر آن را سبک، همه کاره و ساده برای استقرار می کند که همه اینها به بهینه سازی و سرعت بخشیدن به پروژه برنامه شما کمک می کند.

 

معماری پایه Node.js

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

در پیکربندی‌های پردازش چند رشته‌ای، هر سرور دارای یک مخزن رشته محدود است که ممکن است به آن دسترسی داشته باشد. در نتیجه، هر زمان که یک سرور درخواستی را دریافت می کند، یک رشته را از Pool انتخاب می کند و آن را به آن درخواست اختصاص می دهد تا پردازش را انجام دهد. پردازش در این سناریو همزمان و متوالی است، که به این معنی است که فقط یک عملیات در یک زمان انجام می شود.

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

از طرف دیگر Node.js روی یک رشته کار می کند. تمایز بین این دو این است که ممکن است انتظار داشته باشید که معماری‌های تک رشته‌ای از حلقه‌های رویداد برای انجام فعالیت‌های ورودی/خروجی مسدودکننده به شیوه‌ای غیر مسدودکننده استفاده کنند. اگر هر یک از این عبارات برای شما بیگانه است نگران نباشید.

در اصل، طراحی تک رشته ای می تواند سریع تر و موثرتر از پیکربندی های چند رشته ای عمل کند و رشد کند. این دقیقاً همان چیزی است که رایان دال هنگام ایجاد Node.js در ذهن داشت و یکی از دلایل محبوبیت آن در بین توسعه دهندگان برنامه های وب است.

 

نمونه هایی از برنامه توسعه یافته با استفاده از Node.js

در اینجا چند مطالعه موردی عمیق‌تر وجود دارد تا به شما در درک کاربردهای دنیای واقعی فناوری و کاربردهای تجاری کمک کند.

نتفلیکس
نتفلیکس محبوب‌ترین سرویس پخش رسانه و ویدیوی درخواستی در جهان است. این یک پلتفرم مبتنی بر داده است که از آزمایش گسترده A/B برای ارائه تجربه ای غنی به بیش از 195 میلیون مشترک جهانی خود استفاده می کند.

دشواری وابستگی‌های شرطی و مقیاس‌پذیری برنامه با تعداد زیادی بسته‌های منحصربه‌فرد منتشر شده در هر چرخه فشار ترکیب می‌شود. در نتیجه، شرکت Node.js را انتخاب کرد که سبک و سریع است. یکی از مهم ترین نتایج کاهش 70 درصدی زمان بارگذاری بود.

لینکدین
لینکدین، بزرگترین سایت شبکه اجتماعی کسب و کار و اشتغال، هنگام انتقال برنامه تلفن همراه خود از Ruby on Rails به Node.js، به Node.js نیز اعتماد کرد.

علیرغم این واقعیت که در آن زمان هنوز یک محیط اجرای نسبتاً نابالغ بود، تصمیم عاقلانه ای بود. برنامه جدید 2-10 برابر سریعتر از برنامه قبلی بود و همچنین بسیار سبک بود. علاوه بر این، زمان توسعه کوتاه بود.

ناسا
بله این درست است. Node.js نیز توسط ناسا استفاده می شود.

این فناوری در این کاربرد بسیار مهمتر از سایر کاربردها است، زیرا با حفظ امنیت فضانوردان در طول ماموریت های فضایی خطرناک، جان انسان ها را نجات می دهد.

پس از یک حادثه تقریباً مرگبار ناشی از داده های ناکارآمد ذخیره شده در چندین مکان، ناسا با وظیفه ادغام داده های مربوط به لباس های فضایی EVA در یک پایگاه داده ابری واحد برای به حداقل رساندن زمان دسترسی مواجه شد. سیستم جدید مبتنی بر Node.js تعداد مراحل این فرآیند را از 28 به 7 کاهش داد.

والمارت
والمارت بزرگترین خرده فروش در جهان است و راه خود را به تجارت خرید اینترنتی باز می کند. علیرغم خطرات موجود، این شرکت در کار با Node.js، یک فناوری نسبتا جدید و بسیار داغ، جهش کرده است.

در سمت مشتری، کسب و کار برنامه موبایل را دوباره مهندسی کرد تا عملکردهای پیچیده ای را در بر بگیرد. والمارت Node.js را به خاطر معماری‌های I/O ناهمزمان و حلقه رویداد تک رشته‌ای که به آن اجازه می‌دهد چندین پرس‌وجو همزمان را مدیریت کند، تحسین کرد.

 

بازگشت به واژه نامه

دیدگاهتان را بنویسید