در این قسمت از وبسایت پرووید دوره آموزش متنی و رایگان Node.js را به شما معرفی می کنیم. Node.js یک محیط اجرا و یا runtime environment است که به صورت open-source و برای سمت سرور پیادهسازی شده است. محیط اجرای Node.js سوار بر موتور V8 مربوط به JavaScript پیاده سازی گردیده است. محیط اجرای Node.js یک محیط مبتنی بر رویداد و یا اصطلاحاً event driven که به صورت non-blocking و یا asynchronous و البته cross-platform عمل میکند را در اختیار ما قرار میدهد. با استفاده از محیط اجرای Node.js میتوانیم اپلیکیشن های server-side مقیاس پذیر را با استفاده از زبان JavaScript پیاده سازی کنیم.
Node.js چیست؟
Node.js یک JavaScript Runtime است که به صورت Event Driven و همچنین Asynchronous و به منظور ساختن Network Application های مقیاس پذیر و یا Scalable ایجاد گردیده است. با استفاده از Node.js به راحتی می توان اپلیکیشن هایی را ایجاد کرد که در آنها کانکشن های متعددی به صورت هم روند مدیریت بشوند. در زمان ایجاد هر کانکشن یک Callback صدا زده شده و اگر کار دیگری برای انجام دادن وجود نداشته باشد Node.js در حالت Sleep قرار خواهد گرفت. در مقایسه با مکانیسم هایی که در سیستم عامل های امروزی برای پیاده سازی چند نخی و یا Multi-threading پیاده سازی می شوند، استفاده کردن از Node.js به مراتب ساده تر و همچنین کارآمد تر میباشد. مدل های پیاده سازی هم روندی در سیستم عامل ها از مفهوم Thread استفاده می کنند. پیاده سازی عملیات مبتنی بر شبکه با استفاده از Thread ها اغلب از کارایی کمی برخوردار میباشند. علاوه بر این، موضوعات کاربرانی که از Node.js استفاده می کنند، نیازی نیست که نگران موضوعاتی از قبیل بن بست و یا Dead Lock باشند.
دلیل این موضوع نیز در این است که در محیط Node.js هیچ قفل و یا Lock خاصی پیاده سازی نشده است. تقریباً هیچ تابعی در Node.js به صورت مستقیم عملیات IO را انجام نمی دهد و بنابراین فرایندها هیچ وقت دچار بن بست نمی شوند. از آنجایی که هیچ چیز در Node.js هیچگاه Block نمی شود، سیستم های مقیاس پذیر میتوانند به سادگی در Node.js پیاده سازی بشوند.
در Node.js از مفهوم Event Loop به عنوان یک Runtime استفاده می شود. طراحی Node.js تا حدودی شبیه سیستم های Ruby و Event Machine آن و همچنین سیستم Python و مدل Twister آن می باشد. البته مدل موجود در Node.js کمی از این مدلها گسترده تر و قابلیتهای بیشتری را دارد. در بسیاری از سیستمهای مشابه همواره یک Blocking Call برای آغاز به کار کردن یک Event Loop لحاظ می گردد. به طور معمول در این نوع سیستم ها Behavior و یا رفتار استفاده از Callback ها و در ابتدا یک اسکریپت تعریف میگردد. این در حالی است که در Node.js هیچ گونه روالی برای استارت کردن یک Event Loop وجود ندارد. Node.js به سادگی وارد یک Event Loop می شود و این کار را پس از اجرا کردن Input Script مربوطه انجام می دهد. پس از اینکه تمامی Callback ها اجرا گردیدند و هیچ Callback دیگری برای اجرا شدن وجود نداشته باشد، Node.js از Event Loop خارج میشود. این روال کمی شبیه به جاوا اسکریپت مربوط به مرورگر است.
مخاطبین این دوره آموزشی
تمامی برنامه نویسانی که قصد یادگیری مفاهیم مربوط به Nod.js را دارند میتوانند از این دوره آموزشی استفاده کنند. توسعه دهندگان وب که از Nod.js به عنوان back end استفاده میکنند، میتوانند با یادگیری مباحث مطرح شده در این آموزش متنی، مهارت های خود را تکمیل کنند. در کنار این آموزش متنی رایگان، توصیه میکنیم که از آموزش شروع به کار با نود جی اس Node.js دیدن بفرمایید.
پیش نیازها
به منظور استفاده هر چه بهتر از مطالب مربوط به این دوره آموزشی می بایست دانش کافی در زبان HTML و JavaScript داشته باشید. به منظور انجام این کار می توانید از آموزش HTML5 و طراحی وب و آموزش جاوا اسکریپت و طراحی وب سایت پرووید استفاده کنید. علاوه بر این دانش کلی در رابطه با روند توسعه وب اپلیکیشن ها نیز برای درک هرچه بهتر مطالب مطرح شده در این دوره آموزشی میتوانند بسیار مفید باشند. در پایان نیز توصیه می کنیم از آموزش شروع به کار با نود جی اس Node.js استفاده کنید.