• بخش 1 – Node.JS ، معرفی
بخش 1 – Node.JS ، معرفی
1395/03/08 - 15:51:33 // Node.js // 2 نظر // 642 بازدید

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

بخش 1 Node.JS ، معرفی

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

بدلیل اهمیت وب و همچنین نقش اساسی جاوا اسکریپت در توسعه ی وب ، شما می توانید اکثر مشکلات خود را با استفاده از پروژه های جاوا اسکریپت opensource مرتفع نمایید . Node.js به شما این امکان را می دهد تا تمام این جاوا اسکریپت های خلاقانه را در سمت سرور به همان شکل کلاینت بکار گیرید .

استفاده از جاوا اسکریپت در سمت سرور همچنین به شما این امکان را می دهد تا تغییر زبان های برنامه نویسی را طبق آنچه که در ذهن شما برای پروژه می گذرد کاهش دهید . در واقع این یک دلیل معنوی برای این است که چرا شما نیاز دارید تا از Node.js استفاده نمایید .

شما می توانید اطلاعات زیادی در مورد اینکه Node.js چیست و معرفی مشروح این تکنولوژی را در وب سایت این شرکت به آدرس www.nodejs.org بیابید .

Node.js یک پلتفرم جاوا اسکریپتی برای ساخت نرم افزارهای مقیاس پذیر شبکه می باشد . Node.js از مدل های event-driven و non-blocking I/O استفاده می کند که باعث می شوند آن را سبک و تاثیرگذار و عالی برای نرم افزارهای تحت بار شدید داده و real-time که روی دستگاه های توزیع شده اجرا می شوند کنند .

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

شاید بخواهید یکی از تفاوت های Node.js را با سایر تکنولوژی های مثل PHP , ASP.NET , Ruby , و ... بدانید . هنگامی که رویداد یا پروسه ای به سیستم می آید با استفاده از منابع مشترک آن پروسه پردازش شده و انجام می گردد . اما سوال این است که استفاده از مدلی مانند Node.js چه فایده ای دارد ؟

برای فهم این موضوع ، شما باید مشکلی را که Node.js سعی بر فائق آمدن بر آن دارد را متوجه شوید . در واقع Node.js در تلاش است تا پردازش های غیر همزمان را در یک thread منفرد انجام دهد . که اینکار باعث بهره وری زیاد و همچنین بهبود کار با نرم افزارهایی می گردد که ترافیک وب زیادی را می طلبند .

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

برای فهم این مسئله یک مثال از طبیعت asynchronous غیرهمزمان بودن Node.js می زنیم .


در زبان های برنامه نویسی همزمان یا synchronous اجرای کدهای بالا خروجی زیر را به ما خواهد داد :

One

Two

... دو ثانیه تاخیر ...

Three

Four

Five

اما در زبان های asynchronous یا غیر همزمان مانند Node.js خروجی به شکل زیر خواهد بود :

One

Two

Four

Five

... هنگامی که دو ثانیه تاخیر گذشت ...

Three

در واقع شما در یک زبان همزمان synchronous پردازش از شروع تا پایان منابع سرور را به خود اختصاص می دهد :

اما در یک زبان غیر همزمان asynchronous هنگام ورود پردازش به سرور ، سرور بالافاصله آماده ی دریافت پردازش های دیگر شده و هنگامی که پردازش قبلی آماده ی callback شد سرور آن را به سمت کلاینت ارسال خواهد نمود .

در انتهای این بخش ، نقشه ی معادل های Node.js و تکنولوژی های جدید را با گذشته مشاهده می کنید . بطور مثال Node.exe جایگزین IIS شده است .

شاد و سلامت باشید

محمد جعفری فوتمی

محمد جعفری فوتمی
معرفی نویسنده : محمد جعفری فوتمی

از سال 1382 بطور تخصصی در زمینه ی طراحی وب سایت کار کرده ام و در طی 12 سال گذشته تجربیاتی را کسب کرده ام که در هیچ کتاب و منبع آنلاینی یافت نمی شود ، تصمیم گرفته ام تا این تجربیات را در قالب مقالاتی به اشتراک بگذارم . امیدوارم مفید واقع شود .

امتیاز به مطلب
           
نظرات کاربران
  • سوران
    1395/03/11 - 19:35:04

    0
    0
    سلام ممنون از شما امیدوارم بحث خوبی بشه و از شما چیزهای خوبی یاد بگیریم
  • معین
    1395/03/18 - 14:36:06

    1
    0
    بسیار سپاسگزارم
ارسال نظر