The concept of Hot Publisher and types of Hot Publisher
Concept and usage of Scheduler, a thread manager in RxJava
How to debug RxJava code
How to test RxJava code
Utilizing RxJava between Client and Server using SSE communication
🎉Kevin's Easy RxJava Part 2 Released🎉 Reactive programming , I'll teach you this again!
What is reactive programming?
In a narrow sense, it can be said to be an API for asynchronous programming to effectively handle complex asynchronous requests.
In a broad sense, it can be said to be a paradigm of declarative programming, which is the opposite of imperative programming, which specifically states the actions to be executed.
Reactive programming is an essential programming model for reactive systems designed to respond immediately to client requests.
Reactive programming is widely used in most development languages and frameworks that require asynchronous communication. ex) Reactive extensions are widely used, such as RxJS in Angular, React, RxJava in Java, RxAndroid in Android, and Reactor and RxScala used in the Spring Framework.
Why should you learn reactive programming?
I mentioned that reactive programming is a development paradigm for effectively handling asynchronous requests.
Today's applications increasingly handle asynchronous requests rather than synchronous ones.
It is true that asynchronous programming using Java threads is quite complex and has a high possibility of unexpected errors occurring.
Reactive programming solves the problems that arise when using threads directly and simplifies the complexity of asynchronous programming.
However, it takes some time to get used to the declarative programming style.
So, it's true that there are some barriers to entry. But I don't think they're insurmountable.
I believe that reactive programming will not only help you improve your development skills to the next level , but will also be a great opportunity for you to experience a shift in your mindset towards development as a developer .
What can I learn in Part 2 ?
In Part 2 of Kevin's Easy RxJava, we'll cover topics not covered in Part 1, such as Hot Publishers, schedulers, debugging, and testing. Finally, we'll get a feel for how the RxJava we learned in Parts 1 and 2 can be applied to Spring Boot through hands-on practice.
First, we reviewed Cold Publisher and Hot Publisher, which were briefly mentioned in Part 1, and then we learned about the types of Hot Publisher and their respective features through marble diagrams and example code.
[Cold Publisher Review Lecture Materials Capture]
[Capture of Hot Publisher Review Lecture Materials]
In this article, we'll explore what the scheduler is, what its role is, and what it does in RxJava. To understand the meaning of the scheduler in RxJava, we'll first provide a simple, graphical explanation of the concepts and operations of processes and threads under a process running on the operating system. This will help students clearly understand the role of the scheduler in RxJava.
[Capture of lecture material on the concept of threads]
Because RxJava is a declarative programming language and asynchronous, debugging RxJava code can be challenging. In Part 2, we'll cover debugging techniques for RxJava code.
Testing is a crucial aspect of application development. However, testing RxJava code, an asynchronous programming language, using standard Java methods has its limitations. In the testing section, you'll learn how to effectively test your code in RxJava.
The final section of Part 2 will present a hands-on project demonstrating how to leverage the RxJava programming skills learned so far in Spring Boot. While the project itself is simple, it will provide insight into how RxJava can be utilized in application development.
[Capture of lecture material on the flow of the hands-on project]
Finally, after completing this lecture, we present a roadmap for future learning related to reactive programming.
What are the special features of our course?
We've tried to make the core concepts of reactive programming as easy to understand as possible for beginners.
Beyond simply explaining the lecture material, each class is accompanied by an unconditional explanation of the example code. In other words, any areas not easily understood through the lecture material are explained in detail with example code, and we strive to ensure students understand the concepts by running the example code and verifying the results.
All example codes used in the lecture are provided on GitHub so that students can directly type in the example codes and run the codes to check the results.
What should I prepare before attending the lecture?
As you might expect, you need to have JDK 1.8 or higher installed on your PC or laptop.
In our course, we used IntelliJ IDE as our development tool. If you're unfamiliar with IntelliJ, feel free to use your current IDE for the practical exercises.
The most important things you need to prepare to take our course are nothing other than the will to learn new skills and the perseverance to never give up. ^^
Show me your will and perseverance, and I'll do my best to help you overcome the barriers to entry into RxJava.
Q. Can non-majors also take the course? A. It doesn't matter whether you're a major or not. I think anyone with a basic knowledge of Java can take this course. Incidentally, I started out as a non-major myself. ^^ However, I believe taking Part 2 after Part 1 will enhance your understanding of the material.
Q. What are the benefits of learning RxJava? A. As I mentioned in the introduction, learning RxJava can simplify complex asynchronous programming, and in addition, it can help you change your way of thinking about programming by using declarative programming rather than imperative programming. Growing into a better developer is a bonus, right? ^^ After learning RxJava, you will be able to solidify the fundamentals of reactive programming, so learning RxJs, RxAndroid, Spring Reactor, etc. will become much easier.
Q. How are the lectures conducted? A. Most classes proceed by first understanding concepts through lecture materials, then directly verifying them through example code. While Part 1 provided additional quizzes in addition to example code, Part 2 will not include separate quizzes.
Q. Where can I download the original example code used in the lecture? A. All example codes explained in class are available on GitHub and can be downloaded from the address below. • Original example source code :https://github.com/ITVillage-Kevin/rxjava-episode2
Q. Where can I download the lecture materials? A. For each class in each section, we have attached the lecture materials used in the class. If you need them, please download them and refer to them.
Q. Are there any reference materials you would recommend other than the lecture materials? A. Below are some helpful sites for learning reactive programming.
•http://reactivex.io/ This is the official site for reactive programming, and I think it's a really good site to refer to after learning the basics of reactive programming.
• https://rxmarbles.com/ This is a well-organized marble diagram of operators, which can be said to be the core of reactive programming.
• http://reactivex.io/RxJava/2.x/javadoc/ Finally, here's the official javadoc documentation for RxJava. As of 2020, RxJava 3.0 has been released, but it's best to simply assume that 3.0 adds a lot of new operator functions, and to solidify your understanding of the concepts with version 2.x before moving on to version 3.0.
Recommended for these people
Who is this course right for?
For those who want to overcome the difficulties of multi-threaded programming in Java.
For those who want to get familiar with declarative programming style.
For those who want to overcome the barrier to entry to reactive programming
For those who want to learn the basics of reactive programming for developing Spring Reactive Web Applications
[Kevin's Easy to Understand RxJava Part 1] Those who took the course
Need to know before starting?
Java
Difference between synchronous and asynchronous programming
Hello This is
6,287
Learners
231
Reviews
107
Answers
4.8
Rating
6
Courses
- 주력 언어 또는 기술 : Java, Spring Framework, RxJava, Reactor, Spring WebFlux
- (주)코드스테이츠(https://www.codestates.com)에서 Senior Educational Software Engineer(Backend)로 활동 (From 2022.03 To 2024.01.31)
안녕하세요, 2부 강의 역시 제가 제일 먼저 완강을 하고 수강평을 남기게되었습니다. ^^ 1부/2부에 걸쳐서 리액티브 프로그래밍에 대해서 최대한 쉽게 이해시켜드리려고 노력했는데 어떠셨는지 모르겠네요. 아무튼 리액티브 프로그래밍을 이해하시는데 제 강의가 조금이라도 도움이 되길 바래볼게요. 감사합니다!