تالار گفتگوی کیش تک/ kishtech forum
Node.js در برنامه نویسی به چه معنایی است؟ - نسخه‌ی قابل چاپ

+- تالار گفتگوی کیش تک/ kishtech forum (http://forum.kishtech.ir)
+-- انجمن: پردیس فناوری کیش (http://forum.kishtech.ir/forumdisplay.php?fid=1)
+--- انجمن: فناوری اطلاعات و ارتباطات (http://forum.kishtech.ir/forumdisplay.php?fid=6)
+---- انجمن: سایر موضوعات (http://forum.kishtech.ir/forumdisplay.php?fid=35)
+---- موضوع: Node.js در برنامه نویسی به چه معنایی است؟ (/showthread.php?tid=42671)



Node.js در برنامه نویسی به چه معنایی است؟ - Mehdi_Shams - 10-07-2020

Node.js یک پلتفرم بر اساس زبان جاوا اسکریپت است که امروزه توانسته با استفاده از تکنولوژی رویداد محوری که درون خود پایه گذاری کرده است، بسیاری از برنامه‌نویسان را جذب خود کند. همراه لیداوب با
Node.js یک پلتفرم بر اساس زبان جاوا اسکریپت است که امروزه توانسته با استفاده از تکنولوژی رویداد محوری که درون خود پایه گذاری کرده است، بسیاری از برنامه‌نویسان را جذب خود کند. همراه لیداوب باشید تا در این مقاله، این پلتفرم جذاب را بیشتر بشناسیم.

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

[تصویر:  RIMG10776.JPG]

js بر اساس موتور جاوا اسکریپتی گوگل موسوم به V8 طراحی شده است. اگر بخواهیم درباره این موتور توضیحی مختصر بدهیم باید بگوییم که این موتور توسط گوگل طراحی شده تا کدهای جاوا اسکریپتی را درون خودش سریع‌تر از قبل کامپایلر و اجرا نماید. این موتور به صورت متن باز منتشر شده و به زبان برنامه‌نویسی ++C نوشته‌شده است. ضمن اینکه از استاندارد اکما اسکریپت نیز بهره می‌برد. هر جا که شما دوست دارید تا جاوا اسکریپت را اجرا کنید، این موتور می‌تواند به شما کمک کند. امروزه یکی از دلایل استفاده زیاد از Node.js را همین موتور قدرتمند می‌دانند.
در ادامه مقاله می‌خواهیم درباره ویژگی‌های Node.js بگوییم که شامل:
پلتفرم Node.js محدود به هیچ مرورگری نیست ضمن اینکه قابلیت اجراشدن در انواع سیستم‌عامل‌های ویندوز، لینوکس و مک را نیز دارد.
جامعه بزرگی از مصرف‌کنندگان Node.js می‌تواند یک عامل مهم در انتخاب این پلتفرم باشد. شرکت‌های بزرگی همچون Yahoo ،Microsoft ،Paypal ،eBay و ... که از Node.js استفاده می‌کنند و می‌تواند ملاکی برای اعتبار این پلتفرم به‌حساب آورد.
 پلتفرم Node.js خودش صاحب یک وب سرور است لذا اگر شما از یک وب سرور استفاده می‌کنید، Node.js از آن استفاده نمی‌کند، چون خودش دارد و برای اینکه برنامه شما را اجرایی کند از طریق خطوط دستوری به نام Command Line استفاده می‌کند (Command Line درواقع یک راه تعاملی برای برقراری ارتباط با سرور است و همانطور که از اسمش هم پیداست، زمانی که می‌خواهیم سرور کاری را برای ما انجام دهد می‌توانیم به صورت نوشتن یک سری دستورات مشخص و تعیین شده این کار را انجام دهیم که طبعا سرعت بالاتری را هم در آخر نصیب ما خواهد کرد)

 در این مورد می‌خواهیم درباره مهم‌ترین ویژگی Node.js صحبت کنیم. عاملی که باعث شده است تا بسیاری از برنامه‌نویسان امروزه به دنبال استفاده از Node.js باشند.  قبل از اینکه بخواهیم درباره این ویژگی صحبت کنیم، باید روال عادی در وب سرورهای سمت سرور را بررسی کنیم تا مزیتی که Node.js در اختیار ما قرار می‌دهد، پررنگ‌تر جلوه کند.
شما در حال تایپ آدرس یک وب‌سایت هستید یا وارد صفحه‌ای در یک وب‌سایت می‌شوید یا هرگونه ارتباطی که شما به‌عنوان کاربر با سرور ایجاد می‌کنید، در زبان‌های برنامه‌نویسی سمت سرور، باعث ایجاد یک Thread (یک موضوع یا یک بحث جدید) می‌کند و این Thread زمانی بسته می‌شود که شما به درخواست خود رسیده باشید، مثلا صفحه‌ی وب‌سایتی که می‌خواهید برای شما بازشده باشد.
حالا فرض کنید که شما قرار است وارد یک وب‌سایت پرطرفدار شوید، وب‌سایتی که بازدیدکنندگان آن بسیار زیاد هستند و طبعاً همه این افراد در بین صفحات این وب‌سایت در حال جستجو کردن هستند یا مطالب مختلف را مشاهده می‌کنند، در این حالت است که Thread های بسیار زیادی ایجاد می‌شوند. اینجاست که سرور احتمالاً به سقف می‌چسبد و بایستی که سرورهای موجود را افزایش دهیم که خود یک هزینه اضافی است. البته باید بگوییم که مشکل اصلی ما در اینجا، حجم بالای اطلاعات ورودی و خروجی است که به روشی که در بالا گفتیم صورت می‌گیرد.
[تصویر:  using-nodejs-for-realtime-web-5-638.jpg]

در مثال بالا حالتی را گفتیم که معمول بود اما حال می‌خواهیم برخورد Node.js را در این مواقع بررسی کنیم. تفاوتی که Node.js دارد این است که از عملیات ورودی-خروجی یا I/O به‌صورت رویداد محور استفاده می‌کند که دارای ویژگی non blocking است و مسدود شونده نیست (اصطلاحا به این روش non blocking I/O می‌گویند). درواقع در این روش، هر اتصالی که کاربر با سرور ایجاد می‌کند به‌صورت یک رویداد تعریف می‌شود نه یک Thread (تمامی درخواست‌ها و اتصالات به‌صورت رویدادها مدیریت می‌شوند درحالی‌که فقط یک Thread شکل‌گرفته است). در یک جمله اگر بخواهیم این مورد را خلاصه کنیم این است که با ایجاد حالت رویداد محور، ما برای رسیدن به نتیجه‌ای که مخاطب به دنبال آن است، دیگر نباید منتظر عملیات ورودی-خروجی باشیم، اینجا صرفا رویدادها هستند که دریافت نتیجه را سبب می‌شوند.
آخرین ویژگی که درباره آن می‌خواهیم صحبت کنیم، ماژول‎‌ها و امکاناتی است که Node.js آن‌ها را دارد و کار شما در استفاده از این پلتفرم راحت‌تر خواهد کرد.
نتیجه‌گیری
در این مقاله درباره یک پلتفرم سریع صحبت کردیم. پلتفرمی که می‌تواند برای وب‌سایت شما با بازدیدکنندگان زیاد، بسیار خوب عمل کند. پلتفرمی که دارای ماژول‌ها و امکانات زیادی است که شمارا می‌تواند کمک کند. Node.js مرتبط با سرعت و کیفیت بیشتر کار خود را انجام می‌دهد و این باعث شده است که حتی برنامه‌نویسان غیرحرفه‌ای هم به سراغ آن بروند و برنامه‌های حرفه‌ای بر اساس آن طراحی کنند. اگر به دنبال یک فضایی هستید که کدهای جاوا اسکریپتی خود را اجرایی کنید و خیلی سریع به درخواست مخاطب خود جواب دهید، Node.js می‌تواند یک انتخاب خوب برای شما باشد ضمن اینکه برای داشتن یک انتخاب خوب و مطالعه راجع به سایر زبان‌های برنامه‌نویسی و آموزش‌های حوزه وب، می‌توانید در لیداوب به اهداف خود برسید.
خلاصه مقاله معرفی Node.js را در نقشه ذهنی زیر می‌بینید:
[تصویر:  photo_%DB%B2%DB%B0%DB%B1%DB%B7-%DB%B0%DB...%DB%B5.jpg]