یه برنامه نویس معمولی لینوکس کار
نود جی اس رو از کجا شروع کنیم؟
خیلی مطلب جسورانه ای خواهد بود . چرا که من در حدی نیستم که بخوام پاسخ سوال به این سختی و پیچیده گی رو بدم . اما به دلیل مناعت طبع دوستان که لطف داشتند و از من خواستند مطلبی در این باب بنویسم ، پس سعی کردم مطابق با تجربه خودم و دیدگاه هایی که وجود داره ، مطلبی بنویسم .
اول از همه باید بدونیم داریم چی یاد میگیریم . من چون اعتقاد دارم که برنامه نویس باید زبان انگلیسی نسبتا خوبی داشته باشد و قصد یاد دادن چیزی هم ندارم ، پس از وب سایت نود جی اس ، یک سری مطالب رو بیان میکنم که فکر میکنم مهم هستند
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
Node.js is an open-source, cross-platform JavaScript run-time environment that executes JavaScript code outside of a browser.(wikipedia)
طبق گفته های بالا ، نود جی اس یک زبان نیست و همونطور که دیدیم ، یک موتور هست که با جاوا اسکریپت اجرا میشه .
جاوا اسکریپت
خوب ، اول از همه باید با جاوا اسکریپت آشنا بشیم و تسلط نسبی داشته باشیم روی نحوه کار کردن با جاوا اسکریپت .
برای این کار باید یک دید کلی داشته باشیم .
باید یک شناسنامه کامل از اکما اسکریپت ها و تفاوت نسخه هایی که موجود هست را بدونیم .
لینک هایی معرفی میکنم تا بتونیم جاوا اسکریپت رو کامل و خوب یاد بگیریم . به این منظور ، به ترتیب لینک ها رو جلو میریم . البته اعتبار لینک ها تضمین شده هستند .
نود جی اس
در این مرحله باید حتما بدونیم که نود جی اس داره با چه ساختاری کار میکنه؟ مثل اینکه blocking و non-blocking و تفاوت های async و sync و ... رو بدونیم . بهتره که داکیومنت جامعی از نود جی اس بخونیم .
باندلر ها
مشکل بعدی که دیده شده و خیلی ها با اون مشکل دارن ، نداشتن مهارت کافی بر روی bundler های جاوا اسکریپت هست . بهتر اینه که بعد از کسب مهارت کافی در جاوا اسکریپت ، دلیل و نحوه استفاده از باندلر ها رو بدونید .
JavaScript bundlers are similar to loaders but they are mostly concerned with making code ready for production.
همانطور که در بالا نوشتم ، باندلر ها ،دغدغه ایجاد یک نسخه production با پرفورمنس خوب را دارند .
در لینک زیر میتونید لیست بهترین باندلر ها که در اولین ردیف آن ، webpack قرار دارد رو ، ببینید .
قرار نیست به همه این باندلر ها تسلط داشته باشید . اما باید بتونید به راحتی کانفیگ کنید و اصطلاحات رو درک کنید .
فریم ورک ها
در مرحله بعدی باید بدونیم که چه هدفی داریم؟
قصد نوشتن کد های سمت وب داریم یا اینکه میخوایم یک نرم افزار بنویسیم که روی دسکتاپ کار کنه یا یک موبایل اپلیکیشن و حتی کارهای روبوتیک و یا نرم افزارهایی برای arduino یا میکرو کامپیوتر ها مثل raspberry pi؟
خوب برای هر کدوم ، فریم ورک ها و بویلرپلیت های خاص خودشو داریم .
فریم ورک های وب :
Express.js
Koa.js
Sails.js
AdonisJs
MeteorJs
NestJs
مواردی که ذکر شد ، محبوب ترین ها هستند و دلیل بر برتری ندارند و مواردی که نوشته نشدند بسیار زیادند
فریم ورک های cross platform
Electron js
NW.js
Meteor.js
ذخیره سازی cache
ذخیره سازی در cache برای بالا بردن پرفورمنس اپلیکیشن ها یک امر لازم و مهم است .
express-redis-cache
node-cache
cache-manager
مدیریت پایگاه داده
Mongoose ODM (Mongo DB)
Sequelize
TypeORM
Mysql
سوکت ها و فریم ورک های آن
سوکت یک پروتوکل برای ارتباط real time بین اپلیکیشن ها است (وب ، موبایل ، دسکتاپ و ...). این پروتوکل ، فریم ورک های مختلف زیادی دارد که معروفترین آنه socket.io هست . البته معروف بودن دلیل بر بهتر بودن نیست . باید بدونید که پروژه شما به چه چیز هایی نیاز دارد .
socket.io
ws
Feathers
Express-ws
انتشار برنامه های وب (Deploying)
در این مرحله ، باید نحوه انتشار برنامه ها بر روی وب سایت رو بدونیم . این مورد را Deploy کردن میگن. برای این کار بهترین روش شناخته شده ، استفاده از PM2 هست
PM2
کمی هم داکر خوبه
این مورد لازمه برنامه نویس نیست ، اما خوبه برنامه نویس بدونه داکر چیه و چرا ازش استفاده میکنیم . چون قصد آموزش ندارم و فقط میخوام ریفرنس بدم ، لینک داکر و توضیحاتش رو قرار میدم .
Docker is a set of coupled software-as-a-service and platform-as-a-service products that use operating-system-level virtualization to develop and deliver software in packages called containers
میتوانید بعد از این مطلب ، لینک زیر رو بخونین
https://virgool.io/liara-ir/%D9%86%D9%88%D8%B4%D8%AA%D9%86-dockerfile-%D8%A8%D8%B1%D8%A7%DB%8C-nodejs-jyxg06dz3ak5
مطلبی دیگر از این انتشارات
استفاده از nodejs در کنار فریم ورک های دیگر
مطلبی دیگر از این انتشارات
دریافت لیست شهرهای ایران در node.js
مطلبی دیگر از این انتشارات
چگونه از ES6 در NodeJS استفاده کنیم؟