آموزش برنامه نویسی واکنشی در جاوا مدرن با استفاده از Project Reactor

Reactive Programming in Modern Java using Project Reactor

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: یاد بگیرید که با استفاده از اصول Reactive Programming و Reactor، کدهای Asynchronous و NonBlocking با عملکرد سریع بنویسید. برنامه نویسی واکنشی چیست؟ چه زمانی از برنامه نویسی واکنش گرا استفاده کنیم؟ نوشتن کد واکنشی با استفاده از Project Reactor اپراتورهای مختلف که بخشی از Project Reactor Streams Specification ساخت غیر مسدود کننده Rest Clients با استفاده از Spring WebClient Unit تست کد واکنشی با استفاده از JUnit5 Reactive Types Flux/Mono پیش نیازها:تجربه قبلی در جاوا نوشتن موارد تست با استفاده از تجربه اجباری است. JUnit تجربه کار با Intellij یا هر IDE دیگری

برنامه‌نویسی واکنشی یک الگوی برنامه‌نویسی جدید است که برای برنامه‌هایی که نیاز به عملکرد بهتر در زیر بار سنگین دارند، مناسب است.

برنامه نویسی واکنشی بر اساس مشخصات جریان های واکنشی ساخته شده است. 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"


در پایان این دوره، درک کاملی از برنامه‌نویسی واکنش‌گرا خواهید داشت، با استفاده از اصول برنامه‌نویسی واکنش‌گرا کد می‌نویسید و زمان استفاده از آنها را در پروژه خود خواهید داشت.


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

معرفی Introduction

  • مقدمه و اهداف دوره Course Introduction & Objectives

  • مقدمه و اهداف دوره Course Introduction & Objectives

  • پیش نیازها Prerequisites

معرفی Introduction

  • پیش نیازها Prerequisites

اسلایدهای دوره و کد منبع Course Slides & Source Code

  • اسلایدهای دوره Course Slides

  • اسلایدهای دوره Course Slides

  • کد منبع Source Code

اسلایدهای دوره و کد منبع Course Slides & Source Code

  • کد منبع Source Code

مقدمه ای بر برنامه نویسی واکنشی Introduction to Reactive Programming

  • چرا برنامه نویسی واکنشی؟ Why Reactive Programming?

  • چرا برنامه نویسی واکنشی؟ Why Reactive Programming?

  • برنامه نویسی واکنشی چیست؟ What is Reactive Programming ?

  • برنامه نویسی واکنشی چیست؟ What is Reactive Programming ?

  • مقدمه ای بر جریان های واکنشی Introduction to Reactive Streams

مقدمه ای بر برنامه نویسی واکنشی Introduction to Reactive Programming

  • مقدمه ای بر جریان های واکنشی Introduction to Reactive Streams

شروع کار با Project Reactor Getting Started with Project Reactor

  • مقدمه ای بر Project Reactor Introduction to Project Reactor

  • انواع راکتور راکتیو - شار و مونو Reactor Reactive Types - Flux and Mono

شروع کار با Project Reactor Getting Started with Project Reactor

  • مقدمه ای بر Project Reactor Introduction to Project Reactor

  • انواع راکتور راکتیو - شار و مونو Reactor Reactive Types - Flux and Mono

راه اندازی پروژه برای این دوره Setting up the Project for this course

  • راه اندازی پروژه Project SetUp

  • راه اندازی پروژه Project SetUp

راه اندازی پروژه برای این دوره Setting up the Project for this course

برنامه نویسی تابعی در جاوا مدرن Functional Programming in Modern Java

  • سبک امری در مقابل سبک عملکردی Imperative Style vs Functional Style

برنامه نویسی تابعی در جاوا مدرن Functional Programming in Modern Java

  • سبک امری در مقابل سبک عملکردی Imperative Style vs Functional Style

بیایید اولین Flux و Mono خود را ایجاد کنیم Lets create our very first Flux and Mono

  • بیایید اولین Flux خود را بنویسیم Let's write our very first Flux

  • بیایید اولین Flux خود را بنویسیم Let's write our very first Flux

  • بیایید اولین مونو خود را بنویسیم Let's write our very first Mono

  • بیایید اولین مونو خود را بنویسیم Let's write our very first Mono

  • رویدادهای جریان واکنشی Reactive Stream Events

  • رویدادهای جریان واکنشی Reactive Stream Events

  • تست Flux با استفاده از JUnit5 Testing Flux using JUnit5

  • تست Flux با استفاده از JUnit5 Testing Flux using JUnit5

  • تست مونو با استفاده از JUnit5 Testing Mono using JUnit5

  • تست مونو با استفاده از JUnit5 Testing Mono using JUnit5

بیایید اولین Flux و Mono خود را ایجاد کنیم Lets create our very first Flux and Mono

تبدیل شار و مونو Transforming Flux and Mono

  • با استفاده از عملگر map() تبدیل کنید Transform using map() Operator

  • تبدیل داده ها با استفاده از اپراتورها در پروژه راکتور Transforming Data Using Operators in Project Reactor

  • تبدیل داده ها با استفاده از اپراتورها در پروژه راکتور Transforming Data Using Operators in Project Reactor

  • جریان های واکنشی تغییر ناپذیر هستند Reactive Streams are Immutable

  • با استفاده از عملگر filter() فیلتر کنید Filter using filter() Operator

  • با استفاده از عملگر filter() فیلتر کنید Filter using filter() Operator

  • نقشه، فیلتر اپراتورها در مونو Map , Filter Operators in Mono

  • تبدیل پیشرفته با استفاده از عملگر flatMap(). Advanced transform using the flatMap() Operator

  • عملیات ناهمزمان با استفاده از عملگر flatMap(). Asynchronous Operations using flatMap() Operator

  • تبدیل پیشرفته با استفاده از عملگر ()concatMap Advanced transform using the concatMap() Operator

  • تبدیل پیشرفته با استفاده از عملگر ()concatMap Advanced transform using the concatMap() Operator

  • عملگر flatMap( ) در مونو flatMap( ) operator in Mono

  • عملگر flatMapMany( ) در مونو flatMapMany( ) operator in Mono

  • عملگر flatMapMany( ) در مونو flatMapMany( ) operator in Mono

  • با استفاده از عملگر transform() تبدیل کنید Transform using the transform() Operator

  • مدیریت داده های خالی با استفاده از عملگرهای defaultIfEmpty و switchIfEmpty() Handling empty data using defaultIfEmpty and switchIfEmpty() Operators

  • مدیریت داده های خالی با استفاده از عملگرهای defaultIfEmpty و switchIfEmpty() Handling empty data using defaultIfEmpty and switchIfEmpty() Operators

  • DefaultIfEmpty و SwitchIfEmpty در Mono Operator DefaultIfEmpty and SwitchIfEmpty in Mono Operator

تبدیل شار و مونو Transforming Flux and Mono

  • با استفاده از عملگر map() تبدیل کنید Transform using map() Operator

  • جریان های واکنشی تغییر ناپذیر هستند Reactive Streams are Immutable

  • نقشه، فیلتر اپراتورها در مونو Map , Filter Operators in Mono

  • تبدیل پیشرفته با استفاده از عملگر flatMap(). Advanced transform using the flatMap() Operator

  • عملیات ناهمزمان با استفاده از عملگر flatMap(). Asynchronous Operations using flatMap() Operator

  • عملگر flatMap( ) در مونو flatMap( ) operator in Mono

  • با استفاده از عملگر transform() تبدیل کنید Transform using the transform() Operator

  • DefaultIfEmpty و SwitchIfEmpty در Mono Operator DefaultIfEmpty and SwitchIfEmpty in Mono Operator

ترکیب فلاکس و مونو Combining Flux and Mono

  • مقدمه ای بر ترکیب جریان های واکنشی Introduction to Combining Reactive Streams

  • مقدمه ای بر ترکیب جریان های واکنشی Introduction to Combining Reactive Streams

  • عملگر concat() و concatWith(). concat() & concatWith() operator

  • تکلیف برای نوشتن موارد تست JUnit5 برای concatWith() با استفاده از Flux و Mono Assignment for Writing JUnit5 Test Cases for concatWith() using Flux and Mono

  • ترکیب جریان های واکنشی با استفاده از اپراتورهای merge() و mergeWith(). Combining Reactive Streams using merge() and mergeWith() Operators

  • ترکیب جریان های واکنشی با استفاده از اپراتورهای merge() و mergeWith(). Combining Reactive Streams using merge() and mergeWith() Operators

  • تکلیف برای نوشتن موارد تست JUnit5 برای mergeWith با استفاده از Flux و Mono Assignment for Writing JUnit5 Test Cases for mergeWith using Flux and Mono

  • تکلیف برای نوشتن موارد تست JUnit5 برای mergeWith با استفاده از Flux و Mono Assignment for Writing JUnit5 Test Cases for mergeWith using Flux and Mono

  • ترکیب جریان های واکنشی با استفاده از عملگر mergeSequential(). Combining Reactive Streams using mergeSequential() operator

  • ترکیب جریان های واکنشی با استفاده از عملگر mergeSequential(). Combining Reactive Streams using mergeSequential() operator

  • ترکیب جریان های واکنشی با استفاده از عملگر zip و zipWith(). Combining Reactive Streams using zip and zipWith() Operator

  • تکلیف نوشتن موارد تست JUnit5 برای zip با استفاده از Flux و Mono Assignment for Writing JUnit5 Test Cases for zipWith using Flux and Mono

ترکیب فلاکس و مونو Combining Flux and Mono

  • عملگر concat() و concatWith(). concat() & concatWith() operator

  • تکلیف برای نوشتن موارد تست JUnit5 برای concatWith() با استفاده از Flux و Mono Assignment for Writing JUnit5 Test Cases for concatWith() using Flux and Mono

  • ترکیب جریان های واکنشی با استفاده از عملگر zip و zipWith(). Combining Reactive Streams using zip and zipWith() Operator

  • تکلیف نوشتن موارد تست JUnit5 برای zip با استفاده از Flux و Mono Assignment for Writing JUnit5 Test Cases for zipWith using Flux and Mono

ساخت Movie ReactiveService با استفاده از Project Reactor Build Movie ReactiveService using Project Reactor

  • مروری بر این MovieService Overview of this MovieService

  • همه MovieInfo را بازیابی کنید Retrieve all of the MovieInfo

  • همه MovieInfo را بازیابی کنید Retrieve all of the MovieInfo

  • بازیابی MovieInfo توسط movieId Retrieve MovieInfo by movieId

  • پیاده سازی getMovieById با استفاده از عملگر FlatMap در مونو Implement getMovieById using FlatMap operator in Mono

  • پیاده سازی getMovieById با استفاده از عملگر FlatMap در مونو Implement getMovieById using FlatMap operator in Mono

ساخت Movie ReactiveService با استفاده از Project Reactor Build Movie ReactiveService using Project Reactor

  • مروری بر این MovieService Overview of this MovieService

  • بازیابی MovieInfo توسط movieId Retrieve MovieInfo by movieId

doOn* CallBacks - نگاه کردن به یک دنباله doOn* CallBacks - Peeking into a Sequence

  • doOn* CallBacks doOn* CallBacks

doOn* CallBacks - نگاه کردن به یک دنباله doOn* CallBacks - Peeking into a Sequence

  • doOn* CallBacks doOn* CallBacks

مدیریت استثنا/خطا در Flux و Mono Exception/Error Handling in Flux and Mono

  • استثناها در جریان های واکنشی Exceptions in Reactive Streams

  • مقدمه ای بر اپراتورهای رسیدگی به استثنا Introduction to Exception Handling Operators

  • onErrorReturn(): اپراتور کنترل استثنا onErrorReturn() : Exception Handling Operator

  • onErrorReturn(): اپراتور کنترل استثنا onErrorReturn() : Exception Handling Operator

  • onErrorResume(): اپراتور Exception Handling onErrorResume() : Exception Handling Operator

  • onErrorContinue(): اپراتور Exception Handling onErrorContinue() : Exception Handling Operator

  • onErrorMap (): اپراتور کنترل استثنا onErrorMap() : Exception Handling Operator

  • onErrorMap (): اپراتور کنترل استثنا onErrorMap() : Exception Handling Operator

  • doOnError(): گرفتن استثناها و پرتاب خطا doOnError() : Catching Exceptions and Throw the error

  • مدیریت خطای اپراتورها در مونو Error Handling Operators in Mono

  • مدیریت خطای اپراتورها در مونو Error Handling Operators in Mono

  • onErrorMap() را در مونو کاوش کنید Explore onErrorMap() in Mono

  • onErrorMap() را در مونو کاوش کنید Explore onErrorMap() in Mono

  • اپراتور onErrorContinue() را در مونو کاوش کنید Explore onErrorContinue() Operator in Mono

مدیریت استثنا/خطا در Flux و Mono Exception/Error Handling in Flux and Mono

  • استثناها در جریان های واکنشی Exceptions in Reactive Streams

  • مقدمه ای بر اپراتورهای رسیدگی به استثنا Introduction to Exception Handling Operators

  • onErrorResume(): اپراتور Exception Handling onErrorResume() : Exception Handling Operator

  • onErrorContinue(): اپراتور Exception Handling onErrorContinue() : Exception Handling Operator

  • doOnError(): گرفتن استثناها و پرتاب خطا doOnError() : Catching Exceptions and Throw the error

  • اپراتور onErrorContinue() را در مونو کاوش کنید Explore onErrorContinue() Operator in Mono

اجرای Exception Handling در Movies Reactive Service Implement Exception Handling in Movies Reactive Service

  • مدیریت استثنا در MoviesReactiveService با استفاده از onErrorMap Exception Handling in MoviesReactiveService using onErrorMap

  • مدیریت استثنا در MoviesReactiveService با استفاده از onErrorMap Exception Handling in MoviesReactiveService using onErrorMap

  • تست استثنا در MoviesReactiveService با استفاده از Mockito Test Exception in MoviesReactiveService using Mockito

  • تست استثنا در MoviesReactiveService با استفاده از Mockito Test Exception in MoviesReactiveService using Mockito

اجرای Exception Handling در Movies Reactive Service Implement Exception Handling in Movies Reactive Service

دوباره امتحان کنید، با استفاده از retry()، retryWhen()، تکرار() تکرار کنید Retry, Repeat using retry(), retryWhen(), repeat()

  • امتحان مجدد استثناها با استفاده از retry() و retry(n) Retry Exceptions using retry() and retry(n)

  • امتحان مجدد استثناها با استفاده از retry() و retry(n) Retry Exceptions using retry() and retry(n)

  • امتحان مجدد استثناهای خاص با استفاده از retryWhen() Retry Specific Exceptions using retryWhen()

  • امتحان مجدد استثناهای خاص با استفاده از retryWhen() Retry Specific Exceptions using retryWhen()

  • یک دنباله را با استفاده از repeat() و repeat(n) تکرار کنید Repeat a Sequence using repeat() and repeat(n)

  • یک دنباله را با استفاده از repeat() و repeat(n) تکرار کنید Repeat a Sequence using repeat() and repeat(n)

دوباره امتحان کنید، با استفاده از retry()، retryWhen()، تکرار() تکرار کنید Retry, Repeat using retry(), retryWhen(), repeat()

مدل اجرای راکتورها - زمان‌بندی‌ها، رشته‌ها و Threadpool Reactors Execution Model - Schedulers, Threads and Threadpool

  • مدل اجرای راکتور Reactor Execution Model

  • تغییر رشته ها با استفاده از publicOn() Switching Threads using publishOn()

  • تغییر رشته ها با استفاده از subscribeOn() Switching Threads using subscribeOn()

  • تغییر رشته ها با استفاده از subscribeOn() Switching Threads using subscribeOn()

مدل اجرای راکتورها - زمان‌بندی‌ها، رشته‌ها و Threadpool Reactors Execution Model - Schedulers, Threads and Threadpool

  • مدل اجرای راکتور Reactor Execution Model

  • تغییر رشته ها با استفاده از publicOn() Switching Threads using publishOn()

برقراری تماس های مسدود شده در MovieReactiveService Making Blocking Calls in MovieReactiveService

  • برقراری تماس های مسدود شده در MovieReactiveService Making Blocking calls in MovieReactiveService

  • برقراری تماس های مسدود شده در MovieReactiveService Making Blocking calls in MovieReactiveService

برقراری تماس های مسدود شده در MovieReactiveService Making Blocking Calls in MovieReactiveService

فشار پشت BackPressure

  • مقدمه ای بر BackPressure Introduction to BackPressure

  • مقدمه ای بر BackPressure Introduction to BackPressure

  • بیایید BackPressure را پیاده سازی کنیم Let's implement BackPressure

  • بیایید BackPressure را پیاده سازی کنیم Let's implement BackPressure

  • یک تست JUnit برای BackPressure بنویسید Write a JUnit test for backPressure

  • یک تست JUnit برای BackPressure بنویسید Write a JUnit test for backPressure

  • مدیریت فشار برگشتی با استفاده از ()onBackpressureDrop Handling Backpressure using onBackpressureDrop()

  • مدیریت فشار برگشتی با استفاده از ()onBackpressureDrop Handling Backpressure using onBackpressureDrop()

  • مدیریت فشار برگشتی با استفاده از ()onBackpressureBuffer Handling Backpressure using onBackpressureBuffer()

  • مدیریت فشار برگشتی با استفاده از ()onBackpressureBuffer Handling Backpressure using onBackpressureBuffer()

  • مدیریت Backpressure با استفاده از onBackpressureError() Handling Backpressure using onBackpressureError()

  • مدیریت Backpressure با استفاده از onBackpressureError() Handling Backpressure using onBackpressureError()

فشار پشت BackPressure

کاوش موازی سازی داده ها در Project Reactor Explore Data Parallelism in Project Reactor

  • موازی سازی با استفاده از عملگر ()parallel و ()runOn Parallelism using parallel() and runOn() operator

  • موازی سازی با استفاده از عملگر ()parallel و ()runOn Parallelism using parallel() and runOn() operator

  • موازی سازی با استفاده از عملگر flatmap(). Parallelism using flatmap() operator

  • موازی سازی با استفاده از عملگر flatMapSequential(). Parallelism using flatMapSequential() operator

  • موازی سازی با استفاده از عملگر flatMapSequential(). Parallelism using flatMapSequential() operator

کاوش موازی سازی داده ها در Project Reactor Explore Data Parallelism in Project Reactor

  • موازی سازی با استفاده از عملگر flatmap(). Parallelism using flatmap() operator

جریان های سرد و گرم Cold & Hot Streams

  • جریان های سرد و گرم Cold & Hot Streams

  • جریان های سرد Cold Streams

  • جریان های داغ - ConnectableFlux Hot Streams - ConnectableFlux

  • Hot Streams - ConnectableFlux با استفاده از AutoConnect و RefCount Hot Streams - ConnectableFlux using autoConnect and RefCount

  • Hot Streams - ConnectableFlux با استفاده از AutoConnect و RefCount Hot Streams - ConnectableFlux using autoConnect and RefCount

جریان های سرد و گرم Cold & Hot Streams

  • جریان های سرد و گرم Cold & Hot Streams

  • جریان های سرد Cold Streams

  • جریان های داغ - ConnectableFlux Hot Streams - ConnectableFlux

تست با استفاده از VirtualTimeScheduler Testing using VirtualTimeScheduler

  • StepVerifier با استفاده از VirtualTimeScheduler StepVerifier using VirtualTimeScheduler

  • StepVerifier با استفاده از VirtualTimeScheduler StepVerifier using VirtualTimeScheduler

تست با استفاده از VirtualTimeScheduler Testing using VirtualTimeScheduler

RestClient NonBlocking را با استفاده از WebClient بسازید Build NonBlocking RestClient using WebClient

  • نمای کلی API فیلم واکنشی Overview of the Reactive Movie API

  • MovieInfoService RestClient غیر مسدود کننده را بسازید Build the non-blocking MovieInfoService RestClient

  • MovieInfoService RestClient غیر مسدود کننده را بسازید Build the non-blocking MovieInfoService RestClient

  • Unit Test NonBlocking Client با استفاده از StepVerifier و JUnit Unit Test NonBlocking Client using StepVerifier and JUnit

  • Unit Test NonBlocking Client با استفاده از StepVerifier و JUnit Unit Test NonBlocking Client using StepVerifier and JUnit

  • ساخت MovieInfoService RestClient غیر مسدود کننده - getMovieInfoById Build the non-blocking MovieInfoService RestClient - getMovieInfoById

  • ساخت MovieInfoService RestClient غیر مسدود کننده - getMovieInfoById Build the non-blocking MovieInfoService RestClient - getMovieInfoById

  • یک مورد آزمایشی برای تابع retrieveMovieInfoById_RestClient بنویسید Write a test case for retrieveMovieInfoById_RestClient function

  • RestClient Review غیر مسدود کننده را بسازید Build the non-blocking Review RestClient

  • یک مورد آزمایشی برای تابع retrieveReviewsFlux_RestClient بنویسید Write a test case for retrieveReviewsFlux_RestClient function

  • یک مورد آزمایشی برای تابع retrieveReviewsFlux_RestClient بنویسید Write a test case for retrieveReviewsFlux_RestClient function

  • GetAllMovies غیر مسدود کننده MovieReactiveService Client بسازید Build getAllMovies non-blocking MovieReactiveService Client

  • GetAllMovies غیر مسدود کننده MovieReactiveService Client بسازید Build getAllMovies non-blocking MovieReactiveService Client

  • GetMovieById غیر مسدود کننده MovieReactiveService Client بسازید Build getMovieById non-blocking MovieReactiveService Client

RestClient NonBlocking را با استفاده از WebClient بسازید Build NonBlocking RestClient using WebClient

  • نمای کلی API فیلم واکنشی Overview of the Reactive Movie API

  • یک مورد آزمایشی برای تابع retrieveMovieInfoById_RestClient بنویسید Write a test case for retrieveMovieInfoById_RestClient function

  • RestClient Review غیر مسدود کننده را بسازید Build the non-blocking Review RestClient

  • GetMovieById غیر مسدود کننده MovieReactiveService Client بسازید Build getMovieById non-blocking MovieReactiveService Client

ایجاد یک Flux/Mono به صورت برنامه ای Programmatically Creating a Flux/Mono

  • گزینه های مختلف Creating Flux/Mono Different options of Creating Flux/Mono

  • ایجاد Flux با استفاده از gener() Create Flux using generate()

  • با استفاده از create() یک Flux ایجاد کنید Create a Flux using create()

  • با استفاده از create() یک Flux ایجاد کنید Create a Flux using create()

  • ایجاد یک مونو با استفاده از create() Create a Mono using create()

  • ایجاد یک مونو با استفاده از create() Create a Mono using create()

  • با استفاده از handle() یک Flux ایجاد کنید Create a Flux using handle()

  • با استفاده از handle() یک Flux ایجاد کنید Create a Flux using handle()

ایجاد یک Flux/Mono به صورت برنامه ای Programmatically Creating a Flux/Mono

  • گزینه های مختلف Creating Flux/Mono Different options of Creating Flux/Mono

  • ایجاد Flux با استفاده از gener() Create Flux using generate()

اشکال زدایی در Project Reactor Debugging in Project Reactor

  • مقدمه ای بر اشکال زدایی در Project Reactor Introduction to Debugging in Project Reactor

  • مقدمه ای بر اشکال زدایی در Project Reactor Introduction to Debugging in Project Reactor

  • اشکال زدایی استثناها با استفاده از Hooks.onOperatorDebug() Debug Exceptions using Hooks.onOperatorDebug()

  • اشکال زدایی استثناها با استفاده از Hooks.onOperatorDebug() Debug Exceptions using Hooks.onOperatorDebug()

  • اشکال زدایی استثناها با استفاده از عملگرهای "نقطه بازرسی". Debug Exceptions using "checkpoint" operators

  • اشکال زدایی جهانی آماده تولید با استفاده از "ReactorDebugAgent" Production-ready Global Debugging using "ReactorDebugAgent"

  • اشکال زدایی جهانی آماده تولید با استفاده از "ReactorDebugAgent" Production-ready Global Debugging using "ReactorDebugAgent"

اشکال زدایی در Project Reactor Debugging in Project Reactor

  • اشکال زدایی استثناها با استفاده از عملگرهای "نقطه بازرسی". Debug Exceptions using "checkpoint" operators

نمایش نظرات

نظری ارسال نشده است.

آموزش برنامه نویسی واکنشی در جاوا مدرن با استفاده از Project Reactor
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
7 hours
82
Udemy (یودمی) udemy-small
18 آبان 1401 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
4,471
4.4 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Pragmatic Code School Pragmatic Code School

علاقه مندان به فناوری، مدرس آنلاین

Pragmatic Code School Pragmatic Code School

علاقه مندان به فناوری، مدرس آنلاین

Udemy (یودمی)

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

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.