برنامهنویسی عملی غیرهمزمان در جاوا
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- درک ضرورت برنامهنویسی غیرهمزمان به طور کلی
- آشنایی با طراحی اپلیکیشن غیرهمزمان
- درک عملکرد اصول اولیه غیرهمزمان در جاوا (Completable Future)
- درک نحوه چک کردن اینکه آیا یک اپلیکیشن غیرهمزمان از threads به طور موثر استفاده میکند یا خیر
- درک مبادلات اپلیکیشنهای غیرهمزمان
- استفاده از کتابخانههای غیرهمزمان برای دسترسی به پایگاه دادهها به صورت غیرهمزمان
- ساخت REST APIs غیرهمزمان end-to-end
- درک روشهای نظارت بر Thread-Pools و بررسی استفاده صحیح از منابع
- ارتباط مفاهیم آموخته شده با پروژههای واقعی
پیشنیازهای دوره
- آشنایی اولیه با زبان جاوا (برنامهنویسی شیگرا)
- داشتن دانش اولیه درباره Multithreading در جاوا یک مزیت است.
توضیحات دوره
مقدمه
این دوره بهترین منبع آنلاین برای تسلط به ساخت کدهای غیرهمزمان در جاوا است. در این دوره میآموزید چگونه با Completable Futures API کار کنید، گردشکارهای غیربلاککننده را در REST APIs با اسپرینگ بوت بسازید، داده را به صورت غیرهمزمان از پایگاه دادهها واکشی کنید و همچنین نحوه نظارت بر Thread-Pools را جهت ارزیابی بهرهوری آنها در اپلیکیشنها یاد میگیرید.
هدف دوره این است که مفاهیم اصلی برنامهنویسی غیرهمزمان را به طور عمیق متوجه شوید. این مفاهیم در بسیاری از زبانها قابل استفاده هستند اما در اینجا به صورت عملی و نمونههای جاوا، زبانی که توسط بسیاری از شرکتهای بزرگ و بیش از 9 میلیون توسعهدهنده در سراسر جهان استفاده میشود، ارائه شدهاند.
درباره مدرس
اولین کد خود را 10 سال پیش زمانی که در دبیرستان بودیم نوشتیم. خیلی زود جذب آسانی ساخت برنامههای مفید با سیشارپ و Windows Forms شدیم. در دانشگاه مسیر علوم کامپیوتر را دنبال کرده و اساس لازم برای مهندسی نرمافزار (الگوریتمها، ساختار داده، سیستم عاملها، Multithreading، رایانش توزیع شده، شبکهسازی و مباحث دیگر) را کسب کردیم. این مسیر یادگیری 6 ساله را با کسب مدرک کارشناسی ارشد در سیستمهای موازی و توزیع شده به اتمام رساندیم. در پروژه پایانی یک Scheduler سفارشی کوبرنتیز برای اجرای بهینه Jobs اسپارک ساختیم.
در حال حاضر، ما مهندس نرمافزار ارشد هستیم و روی توسعههای بزرگ مقیاس مبتنی بر JVM کار میکنیم. ما کدی مینویسیم که توسط میلیونها نفر در سراسر جهان استفاده میشود.
چرا این دوره را ایجاد کردیم؟
تجربه کار با کدهای غیرهمزمان برای هر مهندس نرمافزار که میخواهد وارد سطح ارشد شود، ضروری است. بسیاری از افراد در درک مسائل زیر دچار مشکل هستند:
- چرا اپلیکیشن من متوقف شده؟ چگونه اشکالزدایی کنم؟
- چگونه این متد را در thread دیگری اجرا کنم؟
- چگونه اطمینان حاصل کنم اپلیکیشن غیرهمزمان من منابع را به خوبی استفاده میکند؟
حتی برای ما هم یادگیری این موارد دشوار بود، با وجود اینکه پیشینه دانشگاهی کافی داشتیم.
اما با سالها کار کردن با threads و callbacks و thread-pools، آزمون و خطای بسیار، بررسی عملکرد و مطالعه کتابها و مقالات، توانستیم این مفاهیم کلیدی را عمیقاً فهمیده و به خوبی در کار روزانه به کار ببریم.
به همین دلیل، فکر کردیم دورهای بسازیم که درک خود از گردشکارهای غیرهمزمان را به اشتراک بگذاریم تا دیگران در زمان خود صرفهجویی کرده و از اشتباهاتی که ما داشتهایم، اجتناب کنند.
محتوای دوره چیست؟
این دوره در 5 فصل تقسیم شده که هر کدام جنبهای جدید از کاربرد برنامهنویسی غیرهمزمان در اپلیکیشنها را آموزش میدهند:
فصل 1 - مفاهیم کلی برنامهنویسی غیرهمزمان
در این فصل مبانی برنامهنویسی غیرهمزمان را میآموزیم. ما مفهوم غیرهمزمانی را با مثالهای جذاب بررسی میکنیم، ابهام رایج تفاوت بین موازی بودن و غیرهمزمانی را واضح میکنیم و همچنین مبادلات برنامههای غیرهمزمان را نسبت به روشهای سنتی توضیح میدهیم، چون باید به برخی نکات توجه داشته باشیم.
فصل 2 - برنامهنویسی غیرهمزمان در جاوا با Completable Future
- در این فصل دست به کار میشویم و API Completable Future را بررسی میکنیم. تفاوت آن با آینده کلاسیک، مدیریت استثناها و نحوه ترکیب فیوچرهای متعدد برای سناریوهای پیچیدهتر را میآموزیم.
- در پایان، یک ربات معاملهگر غیرهمزمان میسازیم که تمامی مفاهیم آموخته شده را در پروژهای جذاب پیاده میکند.
فصل 3 - ساخت API REST غیرهمزمان با اسپرینگ بوت
- در این فصل به بررسی فریمورک اسپرینگ بوت میپردازیم. تاکید بر ساخت کد غیرهمزمان با استفاده از حاشیهنویسی Async@ است. همچنین مکانیزم غیرهمزمان را با تغییر thread-pool زیربنایی پیکربندی میکنیم تا متدها با حاشیهنویسی Async@ به درستی اجرا شوند.
- در انتها، یک پروژه جالب میسازیم؛ یک REST API کاملاً غیرهمزمان که بر اساس کلیدواژه ورودی کاربر، تصاویر را از یک سیستم خارجی دانلود میکند.
فصل 4 - واکشی داده به صورت غیرهمزمان از پایگاه داده
- دسترسی به داده بخش مهمی است، به خصوص در اپلیکیشنهای غیرهمزمان که جریانها باید به صورت end-to-end غیرهمزمان باشد. منطقی نیست که یک درخواست را به صورت غیرهمزمان مدیریت کنیم ولی داده را به صورت بلاککننده واکشی کنیم.
- در این فصل با کلاینتهای پایگاه داده غیربلاککننده MySQL و Redis آشنا میشویم، که باید در هر اپلیکیشن غیرهمزمان برای ساخت گردشکار داده به صورت صحیح استفاده شوند.
- در پایان تمرینی برای شما ارائه میدهیم تا فرآیند دسترسی به داده غیرهمزمان برای MongoDB را بررسی کنید که بسیار جذاب خواهد بود.
فصل 5 - نظارت بر ThreadPools در اپلیکیشنهای غیرهمزمان
- در فصل آخر، نحوه نظارت صحیح بر یک ThreadPool را با استفاده از Prometheus و Grafana (یک استک متنباز شناخته شده برای نظارت) نشان میدهیم.
- ابتدا اهمیت نظارت بر thread-pools را شرح میدهیم، سپس استک نظارت را با داکر ساخته و پیکربندی میکنیم و در نهایت اپلیکیشن اسپرینگ بوت را طوری تنظیم میکنیم که متریکها را در فرمت Prometheus منتشر کند.
پیشنیازهای دوره چه هستند؟
- دانش اولیه جاوا (شامل برنامهنویسی شیگرا)
- مفاهیم اولیه Multithreading جاوا یک مزیت محسوب میشوند، به شما کمک میکنند تا مفاهیم دوره را سریعتر درک کنید.
- یک IDE به انتخاب خودتان، در حالت ایدهآل IntelliJ Idea Community Edition، اما میتوانید از هر IDE که بتوانید کد ساده جاوا را در آن اجرا کنید، استفاده کنید.
- علاقهمندی به یادگیری و ذهنی باز
این دوره برای چه کسانی مناسب است؟
- توسعهدهندگان مبتدی و سطح متوسط جاوا
- توسعهدهندگان حرفهای جاوا
- دانشجویان علوم کامپیوتر
- هر توسعهدهندهای که میخواهد در کار با کد غیرهمزمان مهارت پیدا کند.
برنامهنویسی عملی غیرهمزمان در جاوا
-
شروع کار 06:55
-
برنامهنویسی غیرهمزمان دقیقاً یعنی چه؟ 06:06
-
تفاوت اصلی بین برنامهنویسی موازی و غیرهمزمان چیست؟ 06:15
-
مزایا و معایب برنامهنویسی غیرهمزمان 04:53
-
معرفی API CompletableFuture 10:04
-
محدودیتهای فیوچرها 08:36
-
استفاده از متدهای غیرهمزمان برای اجرای تسکها 09:21
-
برخورد با استثناها در CompletableFutures 14:18
-
ترکیب چندین استیج برای سناریوهای پیچیده 09:09
-
پروژه - بخش 1 - ساخت ربات معاملهگر سهام غیرهمزمان - بررسی 06:56
-
پروژه - بخش 2 - ساخت ربات معاملهگر سهام غیرهمزمان (BrokerAPI) 12:04
-
پروژه - بخش 3 - ساخت ربات معاملهگر سهام غیرهمزمان (کد نهایی) 25:14
-
بررسی اپلیکیشن اسپرینگ بوت بلاککننده 10:15
-
درک نحوه عملکرد حاشیهنویسی غیرهمزمان در اسپرینگ بوت 12:27
-
تغییر Thread-Pool زیربنایی برای متدهای غیرهمزمان 10:55
-
[پروژه] - ساخت اپلیکیشن اسپرینگ بوت غیرهمزمان End-To-End - بخش 1 08:18
-
[پروژه] - ساخت اپلیکیشن اسپرینگ بوت غیرهمزمان End-To-End - بخش 2 12:24
-
[پروژه] - ساخت اپلیکیشن اسپرینگ بوت غیرهمزمان End-To-End - بخش 3 07:15
-
چگونه میتوانیم داده را به صورت غیرهمزمان از MySQL کوئری کنیم؟ 20:42
-
کوئری از Redis به صورت غیرهمزمان با Lettuce 08:55
-
[تمرین] - چگونه داده را به صورت غیرهمزمان از MongoDB کوئری کنیم؟ 03:52
-
چرا باید بر ThreadPools نظارت کنیم؟ 07:07
-
راهاندازی استک نظارت مبتنی بر داکر با Prometheus و Grafana 10:12
-
افشای متریکهای ThreadPool در یک اپلیکیشن اسپرینگ بوت 13:59
مشخصات آموزش
برنامهنویسی عملی غیرهمزمان در جاوا
- تاریخ به روز رسانی: 1405/04/02
- سطح دوره:متوسط
- تعداد درس:24
- مدت زمان :04:06:12
- حجم :2.36GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy