آموزش معماری داخلی و ساختار NodeJS - آخرین آپدیت

دانلود NodeJS Internals and Architecture

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

افزایش کارایی و پایداری برنامه‌های Node.js با درک عمیق معماری و عملکرد داخلی

یاد بگیرید که چگونه Node.js از درون کار می‌کند تا عملکرد، کارایی و پایداری برنامه‌های Backend خود را بهبود بخشید.

مباحث کلیدی:

  • معماری NodeJS
  • پروتکل‌ها، فایل‌ها و برنامه‌نویسی سوکت در NodeJS
  • بهینه‌سازی NodeJS
  • نوشتن کد کارآمد
  • Node.js چند نخی

پیش‌نیازها: مبانی Backend و سیستم‌عامل‌ها

به نظر من، جذاب‌ترین بخش مهندسی نرم‌افزار، هنر شفاف‌سازی آن است.

Node.js یکی از محبوب‌ترین زمان‌های اجرا (runtime) مورد استفاده در مهندسی Backend است، اما به نظرم کمتر از همه درک می‌شود. من خودم هم گاهی این حس را داشته‌ام.

ماه‌ها صرف کار بر روی یک دوره آموزشی کردم تا عملکرد داخلی و معماری NodeJS را رمزگشایی کنم و آن را در این دوره جامع خلاصه کنم.

این دوره را برای مهندسانی ساختم که نمی‌توانند با چیزی مبهم کار کنند.

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

آن‌ها از تجزیه یک خط کد به 1000 خط اصلی آن لذت می‌برند.

آن‌ها می‌پرسند چرا خروجی یک برنامه Node غیرقابل پیش‌بینی است.

آن‌ها می‌خواهند بدانند چه زمانی فرآیند Node پایان می‌یابد.

آن‌ها می‌خواهند بدانند چرا Node در برخی موارد اینقدر طول می‌کشد تا شروع شود.

آن‌ها قدردانی می‌کنند که Node چگونه روی همه سیستم‌عامل‌ها کار می‌کند و می‌خواهند بدانند چگونه این کار را انجام می‌دهد.

به عنوان مثال، با درک عملکرد داخلی ماژول HTTP، می‌توانید یک Backend در Node بنویسید که درخواست‌های بیشتری را بپذیرد و پردازش کند. هر خط کدی که می‌نویسید، به این فکر خواهید کرد که Node چگونه و چه زمانی آن را پردازش خواهد کرد.

با درک حلقه رویداد (event loop) و مراحل مختلف آن، می‌توانید کد خود را تنظیم و مرتب کنید تا به بهترین عملکرد و حتی نتیجه‌ای پایدار برسید.

تا به حال برنامه‌ای در Node نوشته‌اید که 1% مواقع با شکست مواجه شود در حالی که 99% مواقع موفقیت‌آمیز است؟ درک معماری Node به شما کمک می‌کند برنامه خود را قابل پیش‌بینی کنید. به جای افزودن راهکارهای موقت فقط به این دلیل که آن را درک نمی‌کنید. همه ما این کار را انجام داده‌ایم.

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

در این دوره، موارد زیر را پوشش می‌دهم:

معماری NodeJS

من مراحل مختلف در حلقه رویداد را پوشش می‌دهم و دقیقاً در هر مرحله چه اتفاقی می‌افتد، چگونه Promiseها فقط Callbackها هستند، چگونه و چه زمانی ماژول‌ها بارگیری می‌شوند و چه تاثیری بر عملکرد دارند، آناتومی بسته‌های Node و موارد دیگر.

عملکرد داخلی Node

در این قسمت، یک لایه عمیق‌تر می‌شویم، اینکه Node چگونه واقعاً IO ناهمزمان (asynchronous IO) را با libuv انجام می‌دهد و هر پروتکل در Node چگونه پیاده‌سازی می‌شود. چگونه Node همزمان (concurrent node) در سطح نخ‌های کاربری و سطح فرآیند کار می‌کند.

بهینه‌سازی و عملکرد Node

اکنون که عملکرد داخلی و معماری Node را درک می‌کنیم، در این بخش در مورد نکاتی بحث می‌کنیم که چگونه کد را کارآمدتر و پربازده‌تر اجرا کنیم. و تنها زمانی که تمام راه‌های دیگر را امتحان کردیم، Node راه‌هایی را برای گسترش آن با C++ add-ons فراهم می‌کند، جایی که JavaScript دیگر نمی‌تواند ادامه دهد.

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


سرفصل ها و درس ها

مقدمه Introduction

  • مقدمه Introduction

  • این دوره برای چه کسانی مناسب است؟ Who this course for?

  • اطلاعات دوره Course Data

  • سرفصل‌های دوره Course Outline

  • به چه چیزهایی نیاز دارید؟ What do you need?

معماری NodeJS NodeJS Architecture

  • مقدمه‌ای بر معماری Node JS Node JS Architecture Intro

  • زبان‌های تفسیر شده و V8 Interpreted Languages and V8

  • حلقه رویداد The Event Loop

  • ماژول اصلی The Main Module

  • فاز تایمرها Timers Phase

  • فاز کال‌بک‌های در انتظار Pending Callbacks Phase

  • فاز بیکار، آماده سازی Idle, Prepare Phase

  • فاز نظرسنجی (به‌روزرسانی‌شده) Poll Phase (Updated)

  • فاز بررسی Check Phase

  • فاز کال‌بک‌های بسته‌شدن Close Callbacks Phase

  • Process.nextTick Process.nextTick

  • نحوه کار Promiseها در پس‌زمینه How Promises work under the hood

  • رویداد Require، Import Require, Import Event

  • تشریح پکیج‌های Node Anatomy of Node Packages

  • چه زمانی Node خاتمه می‌یابد؟ When does Node terminate?

درون Node Node Internals

  • مقدمه‌ای بر بخش درون Node Node Internals Section Intro

  • مروری بر libuv libuv Overview

  • ورودی/خروجی غیرهمزمان در سیستم عامل Asynchronous IO in the Operating System

  • درون ورودی/خروجی شبکه Node Inside Node Network IO

  • درون ورودی/خروجی فایل Node Inside Node File IO

  • درون HTTP Node Inside Node HTTP

  • درون HTTPS Node Inside Node HTTPS

  • درون DNS Node Inside Node DNS

  • درون TCP Node Inside Node TCP

  • درون UDP Node Inside Node UDP

  • درون Streams Node Inside Node Streams

  • فرآیند در مقابل نخ Process vs Thread

  • Worker Threads Worker Threads

  • فرآیند فرزند و کلاستر Child Process and Cluster

بهینه‌سازی و نکات عملکرد Optimization and performance tips

  • مقدمه‌ای بر بخش بهینه‌سازی Optimization Section Intro

  • عملکرد Node Node Performance

  • اشکال‌زدایی NodeJS Debugging NodeJS

  • ضبط ترافیک Node Capturing Node's Traffic

  • مقایسه عملکرد ماژول‌های Request Request modules performance showdown

  • افزونه‌های C++ C++ Add-ons

  • خلاصه دوره Course Summary

نمایش نظرات

آموزش معماری داخلی و ساختار NodeJS
جزییات دوره
19.5 hours
41
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
2,207
4.8 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Hussein Nasser Hussein Nasser

نویسنده، مهندس نرم افزار

اسم من حسین است و مهندس نرم افزار هستم. از زمانی که عمویم اولین کتاب برنامه نویسی ام را در سال 1998 به من داد () متوجه شدم که نرم افزار علاقه من است. من وبلاگم را راه اندازی کردم و کانال یوتیوب را به عنوان یک خروجی برای صحبت در مورد نرم افزار راه اندازی کردم.

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

من همچنین در زمینه سیستم های اطلاعات جغرافیایی (یا GIS) تخصص دارم. من از سال 2005 به بسیاری از سازمان‌ها در کشورهای مختلف کمک کردم تا فناوری GIS را پیاده‌سازی کنند و برنامه‌های سفارشی را متناسب با موارد استفاده و ساده‌سازی گردش‌های کاری‌شان از سال 2005 نوشتم. دویست ویدیوی یوتیوب و آموزش نرم افزار تا به امروز در حال تماشا هستند و شروع به کردند. من از سال 2015 در Esri مهندس ساختمان فن آوری های GIS جالب هستم.