دوشنبه , تیر ۳۱ ۱۳۹۸
نود جی اس - لایو گوگل - احسان لطفی نیا

معرفی نود جی اس

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

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

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

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

معرفی نود جی اس

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

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

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

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

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

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

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

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

آیا  نود جی اس معایبی هم دارد.

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

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

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

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

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

  • آیا این مقاله مفید بود؟
  • بله   خیر

با تمام وجود علاقمندم مباحث جدید مربوط به برنامه نویسی رو یاد بگیرم و به دیگران یاد بدم. نیمی از زمان روزانه رو صرف یادگیری میکنم. سعی میکنم مقالات مفید و جدید در حوزه برنامه نویسی و به ویژه جاوا اسکریپت رو برای شما دوستان عزیز در لایو گوگل منتشر کنم.

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

نشانی ایمیل شما منتشر نخواهد شد.