معماری و ساختار داخلی NodeJS
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- معماری NodeJS
- پروتکلهای NodeJS، ساختار داخلی برنامهنویسی فایل و socket
- بهینهسازی Node JS
- نوشتن کد کارآمد
- نود Multi-threaded
- IO ناهمگام Libuv
- شبکهسازی در Node
- Streamهای Node
- افزونههای ++C
پیشنیازهای دوره
- اصول Backend و سیستمعاملها
توضیحات دوره
چیز موردعلاقهی مدرس در مهندسی نرمافزار، هنر شفافکردن آن است.
Node یکی از محبوبترین runtimeهایی است که در مهندسی backend استفاده میشود، اما بهنظر او کمترین میزان درک را هم دارد. او هم گاهی همین حس را داشته است.
ماهها روی یک دوره کار کرد تا ساختار داخلی و معماری NodeJS را از ابهام خارج کند و این مطالب را در قالب یک دورهی جامع گردآوری کرد.
این دوره را برای مهندسانی ساخته که تحمل کار با چیزی مبهم را ندارند.
آنها دوست دارند بدانند پشت موتور چه چیزی در حال اجراست.
از اینکه 1 خط کد را به 1000 خط اصلی آن باز کنند لذت میبرند.
میپرسند چرا خروجی یک برنامهی Node غیرقابلپیشبینی است.
میخواهند بدانند فرآیند Node چه زمانی خارج میشود.
میخواهند بدانند چرا Node در بعضی موارد اینقدر دیر شروع میشود.
برایشان مهم است که Node چگونه روی همهی سیستمعاملها کار میکند و میخواهند بدانند این کار را چطور انجام میدهد.
برای مثال، با درک ساختار داخلی ماژول HTTP، میتوانید در Node یک backend بنویسید که درخواستهای بیشتری را بپذیرد و پردازش کند. هر خط کدی که مینویسید، به این فکر میکنید که Node آن را چگونه و چه زمانی پردازش خواهد کرد.
با درک event loop و مراحل مختلف آن، میتوانید کد خود را تنظیم و بازآرایی کنید تا بهترین عملکرد و حتی نتیجهای پایدارتر به دست آورید.
تا به حال برنامهای در Node نوشتهاید که 1% مواقع شکست میخورد اما 99% مواقع موفق است؟ درک معماری Node به شما کمک میکند برنامهای قابلپیشبینی بسازید. بهجای اینکه فقط راهحلهای موقت اضافه کنید چون موضوع را درک نمیکنید. همهی ما این کار را کردهایم.
همهچیز دربارهی برداشتن گلوگاهها و اجازهدادن به فازهای اصلی loop برای «نفس کشیدن» است. وقتی نرمافزار میسازیم، مشکل این است که اغلب برخلاف جریان عمل میکنیم. درک اینکه اصطکاک در Node کجاست، به شما کمک میکند با آن کار کنید، نه علیه آن.
در این دوره موارد زیر را پوشش میدهیم:
معماری NodeJS
- فازهای مختلف event loop و اینکه دقیقاً در هر فاز چه اتفاقی میافتد را بررسی میکنیم، اینکه promises در واقع فقط callback هستند، ماژولها چگونه و چه زمانی بارگذاری میشوند و این موضوع چه اثری بر عملکرد دارد، ساختار بستههای Node و موارد دیگر
ساختار داخلی Node
- در این بخش یک لایه عمیقتر میرویم؛ اینکه Node واقعاً چگونه با libuv به IO ناهمگام دست پیدا میکند و هر پروتکل در Node چگونه پیادهسازی شده است. همچنین بررسی میکنیم concurrency در Node چگونه هم در سطح threadهای کاربر و هم در سطح process کار میکند.
بهینهسازی و عملکرد در Node
حالا که ساختار داخلی و معماری Node را درک کردیم، در این بخش دربارهی نکاتی صحبت میکنیم که کمک میکنند کد کارآمدتر و با عملکرد بهتر اجرا شود. و فقط زمانی که همهی راههای دیگر را امتحان کردیم، Node راههایی برای گسترش با افزونههای ++C فراهم میکند؛ جایی که JavaScript دیگر پاسخگو نیست.
این دوره برای دانشجویان سطح متوسطی است که با Node آشنا هستند و میخواهند بدانند چگونه کار میکند. هرچند اجباری نیست، اما پیشنهاد میکنم دورهی اصول سیستمعامل را بهعنوان پیشنیاز این دوره بگذرانید.
این دوره برای چه کسانی مناسب است؟
- مهندسان نرمافزار در سطح متوسط که میخواهند ساختار داخلی Node را درک کنند.
- مهندسان backend که میخواهند Node را بهصورت کارآمد اجرا کنند.
معماری و ساختار داخلی NodeJS
-
مقدمه 01:56
-
این دوره برای چه کسانی است؟ 03:05
-
اطلاعات دوره 00:49
-
سرفصلهای دوره 06:58
-
به چه چیزهایی نیاز دارید؟ 06:22
-
مقدمه معماری Node JS 09:29
-
زبانهای تفسیری و V8 49:01
-
Event Loop 24:13
-
ماژول اصلی 19:38
-
فاز Timers 26:10
-
فاز Pending Callbacks 14:02
-
فاز Idle و Prepare 18:22
-
فاز Poll (بروزرسانیشده) 47:48
-
فاز Check 23:06
-
فاز Close Callbacks 24:07
-
Process.nextTick 16:45
-
Promiseها در پشت صحنه چگونه کار میکنند؟ 22:43
-
Require ،Import ،Event 34:10
-
ساختار بستههای Node 32:34
-
Node چه زمانی پایان مییابد؟ 20:30
-
مقدمه بخش ساختار داخلی Node 06:41
-
مروری بر libuv 08:04
-
IO ناهمگام در سیستمعامل 29:34
-
درون Network IO در Node 43:35
-
درون File IO در Node 51:50
-
درون HTTP در Node 01:14:03
-
درون HTTPS در Node 01:00:55
-
درون DNS در Node 47:59
-
درون TCP در Node 48:36
-
درون UDP در Node 34:02
-
درون Streamهای Node 01:03:11
-
Process در برابر Thread 01:00:37
-
Worker Threads 51:54
-
Child Process و Cluster 36:30
-
مقدمه بخش بهینهسازی 13:22
-
عملکرد در Node 39:35
-
اشکالزدایی NodeJS 08:06
-
ثبت ترافیک Node 32:35
-
مقایسه عملکرد ماژولهای request 22:23
-
افزونههای ++C 39:21
-
جمعبندی دوره 08:38
-
Proxy در برابر Reverse Proxy 20:05
-
Memcached و NodeJS 01:05:46
مشخصات آموزش
معماری و ساختار داخلی NodeJS
- تاریخ به روز رسانی: 1405/04/12
- سطح دوره:متوسط
- تعداد درس:43
- مدت زمان :21:09:40
- حجم :18.38GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy