در این قسمت قرار هست با Node.js آشنا بشیم و کمی هم در مورد تاریخچه این ابزار محبوب صحبت کنیم.
همینطور با چند روش پر استفاده و معمول نصب این ابزار آشنا خواهیم شد.
Node.js یک محیط متن باز و چند سکویی برای اجرای زبان جاوااسکریپت در سمت سرور است، و همینطور یک ابزار محبوب برای توسعه تقریبا تمامی پروژه ها است.
Node.js از موتور V8 کروم برای اجرای جاوااسکریپت در بیرون از مرورگر استفاده میکند که همین موضوع باعث کارآمدی این ابزار قدرتمند میشود.
نرم افزار هایی که بر پایه Node.js توسعه داده میشوند بر روی یک پروسه اجرا خواهند شد و برای هر درخواست یک Thread جدید ایجاد نمیکنند.
Node.js مجموعه ای از I/O های ناهنگام(Asynchronous) اولیه رو در کتابخانه های استاندارد خود ارائه میدهد، که همین موضوع از مسدود شدن کدهای جاوااسکریپت جلوگیری میکند. به طور کلی، کتابخانه های Node.js بر اساس پارادایم Non-blocking توسعه داده شده اند که باعث میشود که رفتار مسدود کننده تبدیل به یک استثناء بشوند تا یک هنجار.
زمانی که Node.js یک عملیات I/O را انجام میدهد، مانند خواندن از شبکه، دسترسی به دیتابیس یا فایل سیستم، به جای این که یک Thread را مسدود کند و چرخه انتظار CPU را هدر بدهد، عملیات را زمانی که جواب برگشت ادامه میدهد. همین موضوع به Node.js این امکان رو میدهد که هزاران درخواست و ارتباط همزمان را مدیریت کند، بدون اینکه نیازی باشد تا بار مدیریت همزمان Thread ها را بر روی دوش توسعه دهنده بیندازد که میتواند تبدیل به منبع قابل توجهی از مشکلات باشد.
Node.js یک مزیت منحصر به فرد دارد که اونم وجود میلیون ها توسعه دهنده فرانت اند هست که با کمک جاوااسکریپت نرم افزار های وب توسعه میدهند و الان با کمک Node.js میتوانند کد های سمت سرور بنویسند، بدون این که نیازی به یادگیری زبان دیگری داشته باشند.
Node.js به ما این امکان را میدهد که از جدید ترین استاندارد های ECMAScript استفاده بکنیم بدون اینکه به مشکلی برخورد بکنیم، زیرا نیاز نیست که منتظر بمونیم تا کاربران ما مرورگر های خودشان را بروز رسانی کنند. حتی میتوانیم بر اساس نیاز خود، از نسخه خاصی از استاندارد ECMAScript با تغیر نسخه Node.js استفاده بکنیم. Node.js به ما این امکان را میدهد که به استفاده از پرچم ها از ویژگی های تجربی خاصی استفاده کنیم.
NPM یک مدیریت بسته محبوب برای Node.js است که با ساختار ساده ای که دارد، به تکثیر اکوسیستم Node.js کمک زیادی کرده است. در حال حاظر ریجستری NPM میزبان بیش از ۱ میلیون بسته متن باز است که میتوان آزادانه از آن استفاده کرد.
جاوااسکریپت یک زبان برنامه نویسی است که توسط Netscape ساخته شد و هدف از ساخت آن این بود که به توسعه دهنده های وب این امکان رو بدهد که صفحات وب را به صورت مستقیم از مرورگر دستکاری کنند.
جالبه بدونید که در قسمتی از مدل تجاری Netscape، فروش وب سرور بودش که شامل یک محیط توسعه به نام Netscape Livewire بود که به توسعه دهنده های جاوااسکریپت این اجازه رو میداد که صفحاتی داینامیک با استفاده از جاوااسکریپت سمت سرور بسازند، که متاسفانه این پروژه خیلی موفقیت آمیز نبود.
یکی از فاکتور های کلیدی که باعث رشد Node.js شد، زمان بندی بود. چند سال قبل از این که Node.js منتشر شود،جاوااسکریپت داشت به سمتی پیش میرفت که توسعه دهندگان داشتند به چشم یک زبان برنامه نویسی جدی تری به آن نگاه میکردند. با تشکر به نرم افزار های "Web 2.0" (مانند Gmail, Flicker, .....) که تونستند به دنیا نشون بدن وب مدرن به چه صورت خواهد بود.
موتور های جاوااسکریپت هم در این رقابت مرورگر های مختلف با هم برای ارائه عملکرد بهتر به کاربران خود،پیشرفت قابل توجهی داشته اند. تیم های توسعه ای که پشت مرورگر های اصلی (مانند Google Chrome, Firefox, ...) هستند،سخت تلاش کرده اند تا پشتیبانی بهتری برای جاوااسکریپت داشته باشند و راهی برای افزایش سرعت اجرای جاوااسکریپت پیدا کنند.در این رقابت،موتور V8 گوگل کروم که به عنوان موتور اصلی Node.js استفاده شده، پیشرفت خیلی خوبی داشته است.
Node.js در زمان و مکان مناسبی ساخته شد، ولی شانس تنها عامل موفقیت و محبوبیت این ابزار قدرتمند نبود. Node.js تفکرات و رویکرد های ابتکاری زیادی را برای توسعه جاوااسکریپت سمت سرور معرفی کرد که تونستد به تعداد زیادی از توسعه دهندگان کمک بکند.
روش های مختلفی برای نصب Node.js وجود دارد که ما میتونیم توسط یکی از این روش ها آن را نصب کنیم. در ادامه چندین روش پر استفاده و معمول رو معرفی میکنیم.
نکته: اگه Node.js را به درستی نصب کرده باشید میتوانید با دستور node در محیط ترمینال خود به آن دسترسی داشته باشید.
به عنوان یه تازه کار، مسیری که باید طی کنید تا به نقطه ای برسید که اعتماد به نفس کافی در مهارت های خودتون داشته باشید، خیلی سخته و نیاز به پشتکار زیادی داره.
زمانی هم که مشغول یادگیری هستید،ممکنه گیج بشید که کجا جاوااسکریپت شروع و کی تموم میشه یا برعکس.
من پیشنهاد میکنم که قبل از شروع Node.js، سعی کنید ار مفاهیم اصلی جاوااسکریپت یه درک خوبی داشته باشید.
اگه این مطلب براتون مفید بود به اشتراک بذارید و اگه پیشنهادی دارید خوشحال میشم در قسمت نظر ها بزارید تا بتونم قسمت های بعدی این آموزش رو بهتر آماده بکنم.
منبع: Node.js Dev