برنامه نویسیجاوا اسکریپت
موضوعات داغ

هرچیزی که در مورد NodeJs باید بدانید

NodeJs را بیشتر بشناسید

ممکن است در مورد NodeJs چیزی شنیده باشید ، اما چیست؟ به چه درد می‌خورد؟ چه زمانی  باید از آن استفاده کنیم ؟  نود جی اس یک ران تایمر است که به عنوان یک وب سرور backend  استفاده می‌شود و از زبان برنامه نویسی  جاوا اسکریپت پشتیبانی میکند  که API را در صفحه اول خود قرار می‌دهد و می‌تواند با آن ارتباط برقرار کند .همچنین می‌تواند کارهایی مثل باز کردن و نوشتن فایل ها روی سرور را انجام دهد .اضافه کردن، حذف و دریافت داده‌ها از یک دیتا بیس. رسیدگی به پیام‌های Real time از کاربران متعدد برای web application ها ،گیم های مختلف یا چت روم ها  و .. را انچام دهد

Runtimer برنامه ای است که به کد های مربوط به زبان مورد نظر، خاصیت اجرایی می دهد.

NodeJs چیست؟

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

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

اما همانطور که می‌دانیم، تکنولوژی به جلو پیش میرود و صفحات وب ایستا و خسته‌کننده کافی نبودند.

عملکرد صفحات وب پویا

با جاوااسکریپت می توانید برنامه‌هایی را ایجاد کنید که در مرورگر اجرا می‌شوند. لازم نیست دانلود و نصب کنید, فقط در آدرس تایپ کنید و ببینید .

بعد ازآن , می‌توانید ایمیل‌های خودتان را روی وب بخوانید ، وضعیت مالی خودتان را حفظ کنید و به صورت آنلاین خرید کنید.

AJAX

قبلا ً، هنگام دریافت داده‌ها از یک سرور ، باید کل صفحه را باز می کردید.  با AJAX که مخفف JavaScript Asynchronous و XML است این مشکل حل می شود . با AJAX شما می‌تولنید فقط داده‌ها را از سرور دریافت و به طور پویا اطلاعات را  در صفحه با تگ HTML و شکل صحیح وارد کنید .

nodejsdeveloper
nodejs developer

گوگل کروم

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

موتور جاوا اسکریپت V8و NodeJs

در سال ۲۰۰۹ ، Ryan Dahl با استفاده از موتور v8 جاوا اسکریپت ، ایده استفاده از زبان جاوا اسکریپت روی سرور را داشت . او همین کار را هم کرد . او یک لایه در اطراف موتور JavaScript ایجاد کرد تا روی سرور کار کند و آن را نود جی اس نامید .


فواید استفاده از NodeJs

جاوا اسکریپت  می تواند روی کلاینت و سرور استفاده شود .

این یک مزیت مهم برای شرکت‌ها است چون آن ها می‌تونند از تکنولوژی قبل از آن استفاده کنند . الان توسعه دهندگان front end قادر به توسعه backend خیلی ساده و برعکس هستند .

اغلب وقتی روی فرانت کار می‌کنید ، ممکن است به چیزی از بک اند نیاز داشته باشید تا کار خودتان را تمام کنید . اگر شرکت شما توسعه دهندگان backend را به زبانی اختصاص داده‌است که شما درک نمی‌کنید ، ممکن است لازم باشد از آن ها بخواهید آن کد را  اجرا کنند

با استفاده از NodeJs ، فرصت برای توسعه بک اند و فرانت اند، سرعت در کار را  را افزایش خواهد داد . تعجبی نداره که بسیاری از شرکت‌ها به سمت NodeJs میروند .

clientsidescripting

NodeJs می‌تواند تعداد زیادی از کاربران Real-time رو کنترل کند

سرور های قدیمی اغلب فرآیندهای جدیدی برای هر اتصال کاربر ایجاد می‌کنند . اگر هزاران کاربر داشته باشید که همزمان متصل شوند ،میزان  استفاده از حافظه از سقف مجاز عبور خواهد کرد .

 Nodejs در یک رشته واحد اجرا می‌شود . این به این معنی است که زمانی که سرور کد را اجرا می‌کند، باید قبل از اجرای دیگر اجرا شود . با این حال ، این تنها برای کد بکار می‌رود که کارها را مانند محاسبات ، و غیره انجام می‌دهد . به این معنی است که وقتی نود جی اس یک درخواست دیتا بیس را انجام می‌دهد ، کد دیگر می‌تواند در این فاصله اجرا شود . زمانی که داده‌ها از دیتا بیس  آورده می‌شوند ، همچنان روی یک تابع callback کار می‌کند .

این حلقه event است که این event های I / O را مدیریت می‌کند و callback را باز می‌گرداند . این حلقه event به این دلیل است که چرا نود جی اس را “event-driven” میگویند و همچنین asynchronous I/O call ها ، چرا Nodejs را non-blocking میگوند

package manager  در NodeJs

نود جی اس سیستم package manager خود را دارد که شامل  صدها هزار کتابخانه جاوا اسکریپت است . این کتابخانه‌ها را می‌توان در frontend و backend استفاده کرد .

نکته مهم این است که شما می‌توانید به راحتی پکیج های جدید را از طریق command نصب کنید ویا به روز رسانی کنید . هنگام نصب پکیج ها در پروژه شما، یک پوشه موسوم به ” node _ modules ” و اطلاعات دربارهپکیج ها وجود دارد که در فایل package.json ذخیره می‌شوند. زمانی که پروژه را در یک مخزن مانند Github قرار می‌دهید ، لازم نیست فایل‌های کتابخانه را نیز در نظر بگیرید . فقط فایل package.json لازم است . زمانی که کاربران پروژه Github را برمی دارند ، تنها کاری که باید انجام دهند این است که ” install npm ” را اجرا کنند ، و تمام بسته‌ها از فایل package.json نصب می‌شوند .

اشکالات استفاده از NodeJsچیست ؟
در سرور از جاوا اسکریپت استفاده می شود

من قبلاً اشاره کردم که اجرای جاوا اسکریپت روی frontend  و backend  یک مزیت بزرگ است. اما زبان جاوا اسکریپت به تنهایی مستعد خطا است.

در زبان‌های Backend مانند #C ،کد قبل از اینکه بتواند اجرا شود جمع‌آوری می‌شود. این روش شما را از اشتباهات در طول توسعه آگاه خواهد کرد. از آنجا که جاوااسکریپت انواع خاصی ندارد و به همان ترتیب کامپایل نمی‌شود، شما اغلب در طول زمان اجرا یک سوپرایز ناخوشایند خواهید داشت. 🙁

با این حال راه‌هایی برای مبارزه با این مسائل وجود دارد. چیزی مانند typescript می‌تواند به جای زبان جاوا اسکریپت به کار رود. typescript عمدتاً با ویژگی‌های اضافی جاوا اسکریپت است، مانند ارائه نوع چک کردن به کد شما. ابزارهای linting نیز وجود دارند که می‌توانند اشتباهات را در برنامه جاوا اسکریپت شما اعلام کنند.

Nodejs
Nodejs
Nested callback hell

فریموورک Nodejs زمانی که عملیات I / O را انجام می‌دهد به شدت وابسته به callback است. تعداد بسیار بیشتری از عملیات I / O روی backend  در مقایسه با frontend  وجود دارد. یک مساله مشترک که می‌توان به آن رسید nested callback hell است. این زمانی است که  یک callback را بر می‌گرداند، که به نوبه خود عمل I / O را انجام می‌دهد، که callback دیگر را بر می‌گرداند و…

تعداد زیاد پکیج ها

package manager مربوط به  Nodejs عالی است. اما با وجود زیاد بودن تعداد پکیج ها ،پیچیدگی نیز زیاد می شود.

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

بعضی از بسته‌ها به اندازه کامل امن نیستند . این ممکن است منجر به مشکلاتی در برنامه شما شوند. چیزی که  در مورد این سیستم خوب است در دسترس بودن آن برای همه است و این یک مورد عالی است.

از آنجایی که   نود جی اس به صورت single threaded هست , بار زیادی در کارها روی  پردازش مرکزی ندارد . اگرچه عملیات‌های i / o غیرهمزمان هستند , اجرای کد ساده نیست . بنابراین اگر کد شما محاسبات سنگینی انجام می ده, پس نودجی اس انتخاب مناسبی  نیست.

نتیجه‌گیری

اگر موردی  نیاز دارید که می‌تواند بسیاری از کاربران را با منطق ساده اداره کند، Nodejs  انتخاب عالی است. استفاده از منابع شما در سرورها بسیار پایین خواهد بود، که هزینه‌های server  را کاهش می‌دهد.

از طرف دیگر، اگر backend شما محاسبات سنگین مانند پردازش تصویر و یا شبیه‌سازی انجام دهد، باید مورد دیگری را انتخاب کنید

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا