لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش برنامه نویسی واکنشی در جاوا مدرن با استفاده از 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
پیش نیازها
Prerequisites
معرفی
Introduction
مقدمه و اهداف دوره
Course Introduction & Objectives
مقدمه و اهداف دوره
Course Introduction & Objectives
پیش نیازها
Prerequisites
اسلایدهای دوره و کد منبع
Course Slides & Source Code
کد منبع
Source Code
اسلایدهای دوره و کد منبع
Course Slides & Source Code
اسلایدهای دوره
Course Slides
اسلایدهای دوره
Course Slides
کد منبع
Source Code
مقدمه ای بر برنامه نویسی واکنشی
Introduction to Reactive Programming
مقدمه ای بر جریان های واکنشی
Introduction to Reactive Streams
مقدمه ای بر برنامه نویسی واکنشی
Introduction to Reactive Programming
چرا برنامه نویسی واکنشی؟
Why Reactive Programming?
چرا برنامه نویسی واکنشی؟
Why Reactive Programming?
برنامه نویسی واکنشی چیست؟
What is Reactive Programming ?
برنامه نویسی واکنشی چیست؟
What is 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
راه اندازی پروژه برای این دوره
Setting up the Project for this course
راه اندازی پروژه
Project SetUp
راه اندازی پروژه
Project SetUp
برنامه نویسی تابعی در جاوا مدرن
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 و 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
تبدیل شار و مونو
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
تبدیل شار و مونو
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
ترکیب فلاکس و مونو
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
ترکیب فلاکس و مونو
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
ساخت Movie ReactiveService با استفاده از Project Reactor
Build Movie ReactiveService using Project Reactor
مروری بر این MovieService
Overview of this MovieService
بازیابی MovieInfo توسط movieId
Retrieve MovieInfo by movieId
ساخت 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
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
نمایش نظرات