یک مقدمه مختصر برای Node.js

یک مقدمه مختصر برای Node.js

شما به احتمال زیاد دانش کافی کار با HTML و CSS دارید، و در PHP ماهر هستید، و احتمالا تجربه کار با جاوا اسکریپت را هم دارید. تمام اینها مهارت هایی هستند که امروزه توسعه دهنده های مدرن به آنها نیاز دارند تا بتوانند وب سایت های قدرتمند ایجاد کنند.

 

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

 

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

 

Node.js چیست؟

 

همانطور که می دانیم جاوا اسکریپت یک زبان اسکریپت نویسی سمت سرویس گیرنده یا Client-Side است، یه این معنی که می تواند در مرورگر کاربر اجرا شود. حال با این تعریف از جاوا اسکریپت، می توانیم بگوییم که NodeJS به عنوان یک رابط می تواند جاوا اسکریپت را بر روی سرور خود اجرا کند.

 

بطور اساسی، زمانی که شما از دیگر زبان های برنامه نویسی مثل PHP استفاده می کنید، بطور معمول سرور شما Apache یا nGinX است، هر درخواست جدید به سرور باعث رخ دادن عواملی می شود، به عنوان مثال، وقتی تعداد کاربران بطور همزمان افزایش می یابد، بار بر روی سرور، بیش از حد افزایش می یابد، و تنها راه چاره، استفاده از سرورهای بهتر است، که هنگام نیاز مجبور هستیم از آنها استفاده کنیم.

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

 

چرا من باید از Node استفاده کنم؟

 

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

 

حال اینجاست که Node.js وارد می شود. وظیفه آن درست مثل سرور است، به شیوه ای که بسیار شبیه به آپاچی یا nginx عمل می کند. NodeJS تفسیر کد برنامه را اجرا و متوقف می کند.

 

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

 

در نتیجه برنامه سریعتر، پایدارتر و مقیاس پذیر تر می شود. تصور کنید که یک برنامه PHP مسئولیت رسیدگی همزمان به چندین داده برای دستکاری را دارد، Node می تواند همه آنها را با کیفیت بهتر و شیوه سریع تر انجام دهد. 🙂

 

معایب؟

 

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

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

 

بیشتر سرورهای به اشتراک گذاشته شده هنوز پشتیبانی از Node.js را به پلتفرم خود اضافه نکرده اند.

 

علاوه بر این، بش از حد نمی توانید نصب و راه اندازی Node.js در سیستم خود را تغییر دهید. با این حال، این موضوع موقتی است. در حال حاضر بسیاری از برنامه های وب بطور متوسط از بسته LAMP استفاده می کنند، پس شاید زمان مناسب برای استفاده از Node.js نیست.

 

اما همانطو که گفتم تمام این مسائل زود گذر هستند، چرا که NodeJS دستاوردهای زیادی به دست آورده است و باعث محبوبیت شده است، مطمئن باشید به زودی با گذر زمان، امکان پشتیبانی از آن نیز خواهد رسید، و درست مثل رقبای خود مثل PHP سهم عادلانه ای از اینترنت خواهد داشت.

 

منابع آموزشی برای یادگیری Node

 

از آنجایی که قرار است درباره NodeJS بیشتر در پست های آینده ببینیم، این پست تنها به معرفی این فن آوری نسبتا جدید پرداخته است.

یکی از منابع خوب درباره نود جی اس مستندات رسمی Node است که پیشنهاد می کنم برای آشنایی مستندات آن را مطالعه کنید. البته Nodejs.ir نیز مطالب فارسی خیلی خوبی دارد. یکی دیگر از خود آموزهایی که وجود دارد nodeschool.io است، که کارگاه های آموزشی منبع باز فراهم می کند که به خوبی شما را با دنیای Node آشنا می سازد.

 

node-school

 

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

 

فارسی   English 

 

یکی از ویژگی های هیجان انگیز Node این است که با آن می توانید یک برنامه چت درست کنید.

 

خلاصه

 

اگر می خواهید مرز مهارت های توسعه وب خود را افزایش دهید، پس بهتر است کار با Node.js را در نظر بگیرید. این یکی از زبان های برنامه نویسی، اسکریپت است که در حال حاضر همه درباره آن صحبت می کنند و شما نیز نباید از این مسیر دور بمانید.

 

آیا شما هم چیزی را با Node.js ساخته اید؟ چه تجربه ای داشته اید؟ آنها را در نظرات با دیگران به اشتراک بگذارید.