بخش مقالات آکادمی | Articles
آخرین آموزش ها

اگر یک توسعه‌دهنده وب هستید و به‌ویژه اگر با جاوا اسکریپت سروکار دارید، باید NodeJs را به‌شدت جدی گرفته و اخبار توسعه آن را پیگیری کنید.

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

پلتفرم نود، یک گام بسیار بزرگ و تأثیر‌گذار به عقب (زمانی که نت اسکیپ به معرفی جاوا اسکریپت سمت سرور پرداخت) است که آینده را به شدت متحول خواهد کرد.

 

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

 

یکی از اهداف Node “ارائه دادن راهی آسان برای ساخت برنامه های مقیاس پذیر” است. اما مشکل برنامه های سرور فعلی چیست؟

بیاید محاسبه کنیم. در یک زبان مانند Java و PHP هر اتصال کاربر باعث بوجود آمدن یک thread میشود که حدود 2 مگابایت حافظه را اشغال میکند. حال در یک سیستمی با 8 گیگابایت RAM به طور میانگین بیشترین تعداد اتصالات هم زمان 4000 کاربر است.

اگر شما خواسته باشید که تعداد اتصالات هم زمان را افزایش دهید خوب طبیعتا باید به سرورهای خود اضافه کنید. که این اضافه کردن باعث بوجود آمدن هزینه های بیشتر مانند هزینه های سرور, هزینه های ترافیک, هزینه های نیروی کار و … میشود.

 

از مزایای اصلی Node.js می توان به استفاده از روش non-blocking I/O برای مدیریت اتصال همزمان کاربران به سرور نام برد که باعث می شود سرور هایی که با Node.js پیاده سازی می شوند بتوانند به تعداد بالایی در خواست همزمان پاسخ دهند.

یکی دیگر از مزایای Node.js در استفاده از آن برای تولید وب سایت است که باعث می شود که تیم توسعه در سمت کلاینت (مرورگر و صفحات HTML) و سمت سرور از یک زبان برنامه نویسی (جاوااسکریپت) استفاده کند.

اگر بخوایم مزایای و معایب nodJs را دسته بندی و مرور کنیم می توانیم بگوییم:

مزایا
– مقیاس‌پذیر به هزاران اتصال فعال
– بسیار سریع (به خصوص در مقایسه با PHP و Ruby)
– امنیت بیشتر در مقابل بار اضافی اعمال شده به سرور (به خصوص در زمان وقوع حمله‌هاي DDOS که بقیه نرم‌افزارهاي سرور مانند SSH قابل دسترسی و پاسخ دهنده باقی مي‌مانند)
– پارادایم ناهمزمان بسیار ساده، جذاب و آشنا
– نیاز نداشتن به درگیری با مسائلی مانند thread-safety
– عدم استفاده از Multithreading و به تبع آن، مواجه نشدن با باگ‌های قفل‌کننده
– جامعه توسعه‌دهندگان بسیار عظیم و کتابخانه‌ها و ابزارهای توسعه‌داده شده غنی به همراه یک Package Manager قوی برای مدیریت ملحقات!

معایب
– پیچیدگی کد برنامه ناهمزمان (Asyncronous) و مشکل بودن یادگیری مفاهیم اولیه برای برنامه‌نویسان نا‌آشنا با مدل برنامه‌نویسی موازی.
– تأخیر بسیار بالا در صورت نیاز وظایف داخلی به اتمام عملیات محوله. به دلیل این‌که برنامه به‌صورت تک رشته‌اي اجرا مي‌شود، یک تابع با زمان اجرای طولانی مي‌تواند سرعت پاسخ‌دهی کلی سیستم را به شدت کاهش دهد.
– نبود یک کتابخانه استاندارد جاوااسکریپت. برنامه‌نویسان جاوااسکریپت به شدت به استفاده آسان از آن عادت کرده‌اند، بدون این‌که به وارد کردن کتابخانه خاصی نیاز داشته باشند. به‌همین دلیل، از هر چیزی در برنامه‌ها پنج مدل مختلف وجود خواهد داشت که سردرگمی خاصی را ایجاد مي‌کند. حتی ماجول‌هاي قرار‌داده شده در هسته Node.js نیز هر کدام پنج نوع مختلف دارند که به تکامل سریع‌تر مي‌انجامد، اما درجه ابهام بالایی را نیز در پی‌خواهد داشت.
– سیستم‌هاي نهایی نوشته‌شده با این فناوري به‌شدت نسبت به مدل CGI، یعنی Apache+PHP یا Perl یا Ruby و… پیچیده‌تر بوده و استثناهای مدیریت‌نشده مي‌توانند کل فرآيند را متوقف‌کرده و نیاز به راه‌اندازی دوباره فرآيندهاي درحال کار روي کلاستر را الزامی سازند. یک کد باگ دار نیز مي‌تواند باعث خرابی فرآيند اجرایی مربوط شده و هر فرآيند درحال کار خراب، درخواست‌هاي بسیاری را بی‌پاسخ خواهد‌گذاشت که به تبع آن مقاومت کل سیستم در مقابل خرابی را کاهش داده و باعث کاهش کیفیت خدمات خواهد شد.

 

اگر شما علاقه مند به اموزش NodeJs  شده اید این آموزش را از دست ندهید.

تاریخ ارسال
30 فروردین 1395
ارسال شده توسط
بشیر صالحی
میزان بازدید
0 نفر بازدیدکننده
1 دیدگاه
فایلی جهت دانلود وجود ندارد !
مشخصات
نویسنده : بشیر صالحی
حجم و فرمت :

1 دیدگاه ثبت شده

شما هم نظری بدهید
محمد ز

سلام
خیلی خوب بود ..
منتظر مقالات بیشتری در زمینه node.js هستیم !

توجه فرمایید:
نظرات شما پس از بررسی و تایید نمایش داده می شود.
لطفا نظرات خود را فقط در مورد مطلب بالا ارسال کنید.

برچسب ها

, ,