توضیحات
آموزش معماری و مفاهیم داخلی NodeJS
نام دوره : NodeJS Internals and Architecture
پیشنیاز
آشنایی با مبانی بکاند و سیستمعاملها
توضیحات
علاقهمندی من در مهندسی نرمافزار، هنر شفافسازی سیستمهاست.
Node یکی از محبوبترین محیطهای اجرایی برای توسعه بکاند است، اما به نظر من یکی از کمدرکشدهترینها نیز هست. خودم هم در مقاطعی این احساس را داشتم.
ماهها زمان صرف کردم تا یک دوره آموزشی طراحی کنم که مفاهیم داخلی NodeJS و معماری آن را رمزگشایی کند و همه اینها را در این دوره جامع خلاصه کردهام.
این دوره را برای مهندسانی ساختهام که نمیتوانند با چیزی که مبهم است کار کنند.
کسانی که عاشق درک کامل چیزی هستند که پشت صحنه در حال اجراست.
کسانی که دوست دارند یک خط کد را به هزار خط پشتپرده آن باز کنند.
کسانی که میپرسند چرا خروجی یک برنامه Node غیرقابل پیشبینی است.
کسانی که میخواهند بدانند فرآیند Node چه زمانی خاتمه مییابد.
کسانی که میخواهند بدانند چرا در بعضی مواقع Node راهاندازی کندی دارد.
کسانی که قدردان این هستند که Node چگونه روی همه سیستمعاملها اجرا میشود و میخواهند بدانند چطور این کار را میکند.
برای مثال، با درک داخلی ماژول HTTP، میتوانید بکاندی در Node بنویسید که تعداد بیشتری درخواست را پردازش کند. هر خطی که مینویسید، به این فکر میکنید که Node چه زمانی و چگونه آن را پردازش میکند.
با شناخت چرخه رویداد (event loop) و مراحل مختلف آن، میتوانید کد خود را طوری تنظیم و مرتب کنید که بهترین عملکرد را داشته باشد و نتیجهای ثابت ارائه دهد.
آیا تاکنون برنامهای در Node نوشتهاید که ۹۹٪ موفقیتآمیز بوده ولی ۱٪ مواقع شکست میخورد؟
با درک معماری Node، میتوانید برنامهای پیشبینیپذیر بسازید، بهجای اینکه راهحلهای موقتی به آن اضافه کنید چون دلیل اصلی مشکل را نمیدانید. همه ما این کار را کردهایم.
همه چیز درباره برداشتن موانع و اجازه دادن به نفس کشیدن فازهای اصلی event loop است.
وقتی نرمافزار میسازیم، اغلب برخلاف جریان عمل میکنیم. فهمیدن اینکه گلوگاه در Node کجاست، به شما کمک میکند تا با آن همراه شوید نه در برابرش.
آنچه در دوره آموزش معماری و مفاهیم داخلی NodeJS پوشش داده میشود:
معماری NodeJS
در این بخش فازهای مختلف event loop را بررسی میکنیم و دقیقاً توضیح میدهیم در هر فاز چه اتفاقی میافتد، چگونه promiseها در واقع callback هستند، زمان بارگذاری ماژولها و تأثیر آنها بر عملکرد، ساختار پکیجهای Node و موارد دیگر.
مفاهیم داخلی Node
در این قسمت یک لایه عمیقتر میرویم؛ اینکه Node چگونه IO غیرهمزمان را با libuv پیادهسازی میکند، هر پروتکل در Node چگونه پیاده شده، و Node چگونه به صورت همزمان روی سطح thread کاربر و سطح فرآیند عمل میکند.
بهینهسازی و عملکرد Node
حالا که معماری و مفاهیم داخلی Node را درک کردهایم، در این قسمت نکاتی برای اجرای بهینهتر کد و افزایش عملکرد را بررسی میکنیم. و زمانی که تمام راههای دیگر را امتحان کردیم، Node اجازه میدهد که با افزونههای C++ آن را گسترش دهیم؛ زمانی که JavaScript دیگر کافی نیست.
دوره آموزش معماری و مفاهیم داخلی NodeJS برای چه کسانی مناسب است:
مهندسان نرمافزار در سطح متوسط که میخواهند مفاهیم داخلی Node را بشناسند
توسعهدهندگان بکاند که به دنبال اجرای مؤثرتر Node هستند
یودمی ایران –
دوره درخواستی خود را از راه های ارتباطی درخواست کنید