برنامهنویسی واکنشی یک الگوی برنامهنویسی جدید است که برای برنامههایی که نیاز به عملکرد بهتر در زیر بار سنگین دارند، مناسب است.
برنامه نویسی واکنشی بر اساس مشخصات جریان های واکنشی ساخته شده است. Project Reactor یک پیاده سازی از مشخصات جریان های واکنشی است.
کدی که با استفاده از برنامه نویسی Reactive نوشته شده است این ویژگی ها را دارد:
اساساً ناهمزمان
غیر مسدود کننده
سبک برنامه نویسی کاربردی کد
پشتیبانی از فشار برگشتی
این دوره برای ارائه دانش نظری و عملی در مورد برنامه نویسی واکنشی با استفاده از Project Reactor طراحی شده است. این یک دوره آموزشی کاملاً عملی است و تمام مفاهیم با نوشتن کد توضیح داده شده است.
برنامه درسی دوره:
بخش 1: شروع به کار با دوره
این بخش اهداف دوره و پیش نیازهایی را که برای استفاده حداکثری از این دوره مورد نیاز است پوشش می دهد.
بخش 2: مقدمه ای بر برنامه نویسی واکنشی
در این قسمت شما را با برنامه نویسی واکنشی و مفاهیم مرتبط با آن آشنا می کنم. موضوعات زیر در این بخش پوشش داده شده است
چرا برنامه نویسی واکنشی؟
برنامه نویسی واکنشی چیست؟
مقدمه ای بر جریان های واکنشی
بخش 3: شروع به کار با Project Reactor
در این بخش، من شما را با راکتور پروژه کتابخانه واکنشی و انواع واکنشی Flux و Mono که پایه و اساس Project Reactor را تشکیل میدهند آشنا میکنم
مقدمه ای بر Project Reactor
انواع واکنشی راکتور - شار و مونو
بخش 4: راه اندازی پروژه برای این دوره
در این بخش، پروژه پایه را تنظیم خواهم کرد که برای بقیه این دوره استفاده خواهد شد.
بخش 5: برنامه نویسی کاربردی در جاوا مدرن
در این بخش، برنامه نویسی کاربردی و مزایایی که با این سبک برنامه نویسی مرتبط است را توضیح خواهم داد
سبک امری در مقابل سبک عملکردی
بخش 6: بیایید اولین Flux و Mono
خود را ایجاد کنیمدر این بخش، انواع راکتورهای Flux و Mono را با استفاده از مثالهای ساده کدنویسی و توضیح خواهم داد
موضوعات زیر به عنوان بخشی از این سخنرانی پوشش داده شده است:
بیایید اولین Flux خود را بنویسیم
بیایید اولین مونو را بنویسیم
رویدادهای جریان واکنشی
تست شار با استفاده از JUnit5
بخش 7: تبدیل شار و مونو
در این بخش، اپراتورهای مختلفی را کدنویسی کرده و توضیح خواهم داد که می توان از آنها برای تبدیل داده ها از یک فرم به فرم دیگر با استفاده از راکتور پروژه استفاده کرد
موضوعات زیر به عنوان بخشی از این بخش پوشش داده شده است:
تبدیل داده با استفاده از اپراتورها در پروژه راکتور
تغییر را با استفاده از عملگر map()
جریان های واکنشی تغییر ناپذیر هستند
با استفاده از عملگر filter()
فیلتر کنیدتبدیل پیشرفته با استفاده از عملگر flatMap()
عملیات ناهمزمان با استفاده از عملگر flatMap()
تبدیل پیشرفته با استفاده از عملگر ()concatMap
اپراتور flatMap( ) در مونو
flatMapMany( ) در مونو
تغییر را با استفاده از عملگر transform()
مدیریت داده های خالی با استفاده از عملگرهای defaultIfEmpty و switchIfEmpty()
بخش 8: ترکیب Flux و Mono
در این بخش، اپراتورهای مختلفی را کدنویسی و توضیح خواهم داد که میتوان از آنها برای ترکیب جریانهای راکتیو با استفاده از راکتور پروژه استفاده کرد
موضوعات زیر به عنوان بخشی از این بخش پوشش داده شده است:
مقدمه ای بر ترکیب جریان های واکنشی
ترکیب جریانهای واکنشی با استفاده از اپراتورهای merge() و mergeWith()
ترکیب جریانهای واکنشی با استفاده از عملگرهای mergeSequential ()
ترکیب جریانهای واکنشی با استفاده از عملگرهای zip و zipWith()
بخش 9: ساخت Movie ReactiveService با استفاده از Project Reactor
در این بخش، ما Reactive MovieService را با استفاده از تمام مهارتهایی که تاکنون به دست آوردهایم میسازیم
نمای کلی این MovieService
همه MovieInfo را بازیابی کنید
بازیابی MovieInfo توسط movieId
بخش 10: پاسخهای تماس doOn* - نگاه کردن به یک دنباله
در این بخش، تکنیکهایی را برای بررسی رویدادهای فردی که توسط ناشر منتشر میشود، کدنویسی و توضیح خواهم داد.
بخش 11: رسیدگی به استثنا/خطا در Flux و Mono
در این بخش، استراتژی های مختلف رسیدگی به استثنا را که بخشی از راکتور پروژه هستند پوشش خواهم داد
موضوعات زیر به عنوان بخشی از این بخش پوشش داده شده است:
استثناها در جریانهای واکنشی
مقدمه ای بر اپراتورهای رسیدگی به استثنا
onErrorReturn(): اپراتور رسیدگی به استثنا
onErrorResume(): اپراتور کنترل استثنا
onErrorContinue(): اپراتور کنترل استثنا
onErrorMap(): اپراتور رسیدگی به استثنا
doOnError(): گرفتن استثناها و پرتاب خطا
خطا در مدیریت اپراتورها در مونو
بخش 12: اجرای Exception Handling در Movies Reactive Service
در این بخش، من مدیریت استثنا را در MoviesReactiveService پیادهسازی میکنم.
بررسی استثنا در MoviesReactiveService با استفاده از onErrorMap
تست استثنا در MoviesReactiveService با استفاده از Mockito
بخش 13: سعی مجدد، تکرار با استفاده از retry(), retryWhen(), repeat()
در این بخش، تکنیکهای مختلفی را کدنویسی و پیادهسازی میکنم تا استثناهای موجود در جریانهای واکنشی را با استفاده از Project Reactor دوباره امتحان کنم
موضوعات زیر به عنوان بخشی از این بخش پوشش داده شده است:
امتحان مجدد با استفاده از retry() و retry(n)
استثناهای خاص را با استفاده از () retryWhen امتحان کنید
یک دنباله را با استفاده از repeat() و repeat(n) تکرار کنید
یک Sequence repeatWhen()
را تکرار کنیدبخش 14: مدل اجرای راکتورها - زمانبندیها، رشتهها و تردپول
در این بخش، رشته ها و مدل اجرای پشت راکتور پروژه را توضیح خواهم داد
موضوعات زیر به عنوان بخشی از این بخش پوشش داده شده است:
مدل اجرای راکتور
تغییر رشته ها با استفاده از publicOn()
تغییر موضوعات با استفاده از subscribeOn()
بخش 15: برقراری تماس های مسدود شده در MovieReactiveService
در این بخش، با افزودن یک تماس مسدود کننده به خط لوله، یک پیشرفت به سرویس MoviesReactive اضافه میکنیم.
مسدود کردن تماس ها در MovieReactiveService
در این سخنرانی، ما کدنویسی می کنیم و در مورد نحوه برقراری تماس های مسدود کننده با استفاده از راکتور پروژه
یاد می گیریم.بخش 16: فشار برگشتی
در این بخش، مفهوم فشار برگشتی در برنامه نویسی واکنشی را توضیح خواهم داد
موضوعات زیر به عنوان بخشی از این بخش پوشش داده شده است:
مقدمه ای بر BackPressure
بیایید BackPressure را پیاده سازی کنیم
یک تست JUnit برای BackPressure بنویسید
بررسی فشار برگشتی با استفاده از onBackpressureDrop()
بررسی فشار برگشتی با استفاده از ()onBackpressureBuffer
کنترل Backpressure با استفاده از onBackpressureError()
بخش 17: کاوش موازی سازی داده ها در راکتور پروژه
در این بخش، در مورد معرفی موازی سازی در خط لوله واکنشی توضیح خواهم داد
موضوعات زیر به عنوان بخشی از این بخش پوشش داده شده است:
موازی سازی با استفاده از عملگرهای () parallel و ()runOn
موازی سازی با استفاده از عملگر flatmap()
موازی با استفاده از عملگر flatMapSequential()
بخش 18: جریانهای گرم سرد
در این بخش در مورد استریم های سرد و گرم در برنامه نویسی واکنشی توضیح خواهم داد
موضوعات زیر به عنوان بخشی از این بخش پوشش داده شده است:
جریان های داغ سرد
جریان های سرد
جریان های داغ - ConnectableFlux و گزینه های مختلف
بخش 19: تست JUnit با استفاده از VirtualTimeScheduler
در این بخش، استفاده از VirtualTimer برای کاهش زمان اجرای موارد تست را توضیح خواهم داد.
StepVerifier با استفاده از VirtualTimeScheduler
بخش 20: ساخت RestClient غیر مسدود کننده با استفاده از WebClient
در این بخش، با استفاده از Spring WebClient یک سرویس گیرنده استراحت غیر مسدود کننده می نویسیم
موضوعات زیر به عنوان بخشی از این بخش پوشش داده شده است:
نمای کلی از API فیلم واکنشی
موویInfoService RestClient غیر مسدود کننده را بسازید
بازبینی RestClient غیر مسدود کننده را بسازید
بسازید getAllMovies غیر مسدود کننده MovieReactiveService Client
بسازید getMovieById غیر مسدود کننده MovieReactiveService Client
WireMock را برای تست های ادغام ادغام کنید
بخش 21: ایجاد برنامهای یک شار
در این بخش، تکنیکهای موجود برای ایجاد یک شار را بهصورت برنامهریزی کدنویسی و توضیح خواهم داد.
موضوعات زیر به عنوان بخشی از این بخش پوشش داده شده است:
یک Flux با استفاده از create()
ایجاد کنیدیک Flux با استفاده از push() ایجاد کنید
بخش 22: اشکال زدایی در راکتور پروژه
در این بخش، روشهای مختلفی را که در مورد اشکالزدایی پیامهای خطای راکتور در دسترس هستند، نشان خواهم داد.
موضوعات زیر به عنوان بخشی از این بخش پوشش داده شده است:
اشکالزدایی با استفاده از عملگرهای "نقطه بازرسی"
اشکالزدایی با استفاده از Hooks.onOperatorDebug()
اشکالزدایی جهانی آماده تولید با استفاده از "ReactorDebugAgent"
در پایان این دوره، درک کاملی از برنامهنویسی واکنشگرا خواهید داشت، با استفاده از اصول برنامهنویسی واکنشگرا کد مینویسید و زمان استفاده از آنها را در پروژه خود خواهید داشت.
علاقه مندان به فناوری، مدرس آنلاین
Pragmatic Code Schoolعلاقه مندان به فناوری، مدرس آنلاین
نمایش نظرات