강의

멘토링

로드맵

BEST
Programming

/

Programming Language

RxJava dễ hiểu của Kevin, phần 1

Bạn muốn vượt qua rào cản gia nhập mang tên lập trình Reactive? RxJava dễ hiểu của Kevin sẽ giúp bạn có đủ sức mạnh để vượt qua bức tường đó.

(4.9) 51 đánh giá

738 học viên

  • Kevin
Functional Programming
RxJava
Reactive Streams
Reactive Programming

Đánh giá từ những học viên đầu tiên

Dịch cái này sang tiếng Việt

  • Nền tảng vững chắc của lập trình phản ứng

  • Tìm hiểu về lập trình khai báo

  • Lập trình bất đồng bộ bằng RxJava

  • Interface hàm chức năng và biểu thức Lambda trong Java

  • Hiểu các toán tử Reactive thông qua sơ đồ Marble

  • Học chuyên sâu về toán tử Reactive thông qua các câu đố

Lập trình phản ứng , hãy học một cách dễ dàng và rõ ràng!

Lập trình phản ứng là gì?

  • Theo nghĩa hẹp, có thể nói đây là một API dành cho lập trình bất đồng bộ để xử lý hiệu quả các yêu cầu bất đồng bộ phức tạp.
  • Theo nghĩa rộng, có thể nói đây là một mô hình của lập trình khai báo, trái ngược với lập trình mệnh lệnh, vốn nêu rõ các hành động cần thực hiện.
  • Lập trình phản ứng là một mô hình lập trình thiết yếu cho các hệ thống phản ứng được thiết kế để phản hồi ngay lập tức các yêu cầu của khách hàng.
  • Lập trình phản ứng được sử dụng rộng rãi trong hầu hết các ngôn ngữ phát triển và khuôn khổ yêu cầu giao tiếp không đồng bộ.
    vd) Các tiện ích mở rộng phản ứng được sử dụng rộng rãi, chẳng hạn như RxJS trong Angular, React, RxJava trong Java, RxAndroid trong Android và Reactor và RxScala được sử dụng trong Spring Framework.

Tại sao bạn nên học lập trình phản ứng?

  • Tôi đã nói với bạn rằng lập trình phản ứng là một mô hình phát triển để xử lý hiệu quả các yêu cầu không đồng bộ.
  • Các ứng dụng ngày nay ngày càng xử lý các yêu cầu không đồng bộ thay vì yêu cầu đồng bộ.
  • Đúng là lập trình bất đồng bộ sử dụng luồng của Java khá phức tạp và có khả năng xảy ra lỗi không mong muốn cao.
  • Lập trình phản ứng giải quyết các vấn đề phát sinh khi sử dụng luồng trực tiếp và đơn giản hóa sự phức tạp của lập trình không đồng bộ.
  • Tuy nhiên, cần phải mất một thời gian để làm quen với phong cách lập trình khai báo.
  • Vì vậy, cũng đúng là có một số rào cản khi gia nhập. Nhưng tôi không nghĩ đó là rào cản không thể vượt qua đối với bạn.
  • Tôi tin rằng lập trình phản ứng không chỉ giúp bạn nâng cao kỹ năng phát triển lên một tầm cao mới mà còn là cơ hội tuyệt vời để bạn với tư cách là một nhà phát triển trải nghiệm sự thay đổi trong cách suy nghĩ về phát triển .

Tôi có thể học được gì trong Phần 1 của bài giảng này?

  • Trong cuốn RxJava dễ hiểu Phần 1 của Kevin, trước tiên chúng tôi sẽ giải thích lập trình phản ứng là gì thông qua các ví dụ dễ hiểu. Tôi nghĩ rằng điều rất quan trọng là bắt đầu học bất kỳ ngôn ngữ lập trình nào bằng cách hiểu các tính năng của ngôn ngữ đó trong bối cảnh rộng hơn của ngôn ngữ đó.
  • Chúng tôi đã cố gắng giải thích bằng hình ảnh một cách dễ hiểu nhất có thể về cách xem sơ đồ bi, một yếu tố thiết yếu trong lập trình phản ứng, để học sinh có thể tự hiểu sơ đồ bi.

[Ghi lại tài liệu bài giảng về cách đọc sơ đồ Marvel]

  • RxJava là một triển khai của Reactive Streams, một đặc tả cho lập trình phản ứng. Tôi đã giúp bạn dễ dàng hiểu được luồng hoạt động giữa Nhà xuất bản và Người đăng ký được xác định trong sơ đồ Luồng phản ứng này.

[Ghi lại nội dung bài giảng về luồng hoạt động giữa nhà xuất bản và người đăng ký]

  • Tôi sẽ giải thích sự khác biệt quan trọng giữa Flowable và Observable, Back Pressure, một cách đơn giản nhất có thể.

[Ghi lại nội dung bài giảng về khái niệm áp lực ngược]

  • Tìm hiểu các khái niệm cơ bản về lập trình hàm được sử dụng trong RxJava. Giao diện chức năng và biểu thức lambda, mới được giới thiệu trong Java 8, là các kỹ thuật lập trình được sử dụng rộng rãi trong RxJava. Chúng tôi sẽ giải thích các khái niệm cơ bản theo cách dễ hiểu để bạn có thể hiểu chúng.
  • Chúng tôi sẽ giải thích các hàm toán tử được sử dụng trong RxJava và kết thúc Phần 1 của RxJava. Sẽ không ngoa khi nói rằng RxJava bắt đầu và kết thúc bằng các hàm toán tử, vì hàm toán tử là phần quan trọng nhất của RxJava. Trong bài giảng này, chúng ta sẽ tìm hiểu các hàm toán tử khác nhau theo từng loại bằng cách sử dụng sơ đồ bi và chạy các mã ví dụ để giúp bạn hiểu chức năng và cách thức hoạt động của từng hàm toán tử.

Khóa học của chúng tôi có những đặc điểm gì?

  • Chúng tôi đã cố gắng trình bày các khái niệm cốt lõi của lập trình phản ứng một cách dễ hiểu nhất có thể cho người mới bắt đầu.
  • Không chỉ dừng lại ở việc giải thích tài liệu bài giảng mà mỗi lớp học đều kèm theo phần giải thích về mã ví dụ cho lớp học đó. Nói cách khác, chúng tôi đã cố gắng giải thích chi tiết bằng mã ví dụ về bất kỳ phần nào không thể hiểu được chỉ thông qua tài liệu bài giảng và giúp bạn hiểu bằng cách tự chạy mã ví dụ và kiểm tra kết quả.
  • Trong các chương yêu cầu làm bài kiểm tra, chúng tôi cung cấp bài kiểm tra để sinh viên có thời gian xem lại và biến bài giảng thành của riêng mình.
  • Tất cả các mã ví dụ được sử dụng trong bài giảng đều được cung cấp trên github ( https://github.com/ITVillage-Kevin/rxjava ) để sinh viên có thể trực tiếp nhập mã ví dụ và chạy mã để kiểm tra kết quả.

Tôi nên chuẩn bị những gì trước khi tham dự buổi thuyết trình?

  • Tất nhiên, bạn cần phải cài đặt JDK 1.8 trở lên trên PC hoặc máy tính xách tay của mình.
  • Trong bài giảng, chúng tôi đã sử dụng IntelliJ IDE làm công cụ phát triển. Mặc dù bài giảng giải thích cách xây dựng môi trường thực tế dựa trên IntelliJ, những người chưa quen với IntelliJ vẫn có thể thực hành bằng IDE mà họ đang sử dụng.
  • Những điều quan trọng nhất bạn cần chuẩn bị để tham gia khóa học của chúng tôi là ý chí học các kỹ năng mới và sự kiên trì không bao giờ bỏ cuộc. ^^

Hãy cho tôi thấy ý chí và sự kiên trì của bạn. Tôi sẽ cố gắng hết sức để giúp bạn vượt qua rào cản gia nhập RxJava.

Bạn tò mò về điều gì? (Hỏi & Đáp)

H. Những người không chuyên ngành cũng có thể tham gia khóa học này không?
A. Nó không liên quan gì đến chuyên ngành chính/phụ. Tôi nghĩ bất kỳ ai có kiến ​​thức cơ bản về Java đều có thể tham gia khóa học này. Để bạn tham khảo, tôi cũng bắt đầu với một chuyên ngành không chính. ^^

H. Học RxJava có lợi ích gì?
A. Như tôi đã đề cập trong phần giới thiệu, việc học RxJava có thể đơn giản hóa lập trình bất đồng bộ phức tạp và ngoài ra, nó có thể thay đổi cách bạn suy nghĩ về lập trình thông qua lập trình khai báo thay vì lập trình mệnh lệnh. Trở thành một lập trình viên giỏi hơn là một phần thưởng, phải không? ^^ Sau khi học RxJava, bạn sẽ có thể củng cố những kiến ​​thức cơ bản về lập trình phản ứng, do đó, việc học RxJs, RxAndroid, Spring Reactor, v.v. sẽ dễ dàng hơn nhiều.

H. Các bài giảng được tiến hành như thế nào?
A. Hầu hết các lớp học đều tiến hành theo cách mà sinh viên đầu tiên hiểu các khái niệm thông qua tài liệu bài giảng → sau đó trực tiếp xác nhận các khái niệm bằng chính mắt mình thông qua các mã ví dụ. Đối với các lớp học yêu cầu bài kiểm tra, bài kiểm tra được đưa ra trước khi kết thúc lớp học để sinh viên có thể tự mình giải quyết các bài kiểm tra để biến nội dung của lớp học thành của riêng mình.

H. Tôi có thể tải xuống mã ví dụ gốc được sử dụng trong bài giảng ở đâu?
A. Tất cả các mã ví dụ được giải thích trong lớp đều được tải lên GitHub và có thể tải xuống từ địa chỉ bên dưới.
• Mã nguồn ví dụ gốc:
https://github.com/ITVillage-Kevin/rxjava

Nếu bạn đang tạo một dự án mới và tự nhập mã ví dụ, hãy đảm bảo sao chép/dán gói chung và gói tiện ích từ mã ví dụ trên github, sau đó viết mã.

H. Tôi có thể tải tài liệu bài giảng ở đâu?
A. Đối với mỗi lớp trong mỗi phần, chúng tôi đã đính kèm các tài liệu bài giảng được sử dụng trong lớp. Nếu bạn cần, bạn có thể tải xuống và tham khảo.

H. Bạn có thể giới thiệu thêm tài liệu tham khảo nào ngoài tài liệu bài giảng không?
A. Sau đây là một số trang web sẽ giúp bạn học lập trình phản ứng.

http://reactivex.io/
Đây là trang web chính thức về lập trình phản ứng và tôi nghĩ đây là trang web thực sự tốt để tham khảo sau khi tìm hiểu những kiến ​​thức cơ bản về lập trình phản ứng.

https://github.com/reactive-streams/reactive-streams-jvm
RxJava có thể được coi là một triển khai thực hiện Reactive Streams. Đây là tài liệu chính thức của github định nghĩa các thông số kỹ thuật của Reactive Streams.

https://gist.github.com/casamia918/93b8db69beb9ee06b92a96b2a234d48e
Đây là nguồn tài nguyên GitHub tiếng Hàn được dịch khá tốt về lập trình phản ứng. Tôi chỉ muốn nói lời cảm ơn rất nhiều vì đã dịch bài này sang tiếng Hàn.

https://rxmarbles.com/
Đây là sơ đồ toán tử dạng bi được tổ chức tốt, là cốt lõi của lập trình phản ứng.

http://reactivex.io/RxJava/2.x/javadoc/
Cuối cùng, đây là tài liệu javadoc chính thức cho RxJava. Tính đến năm 2020, RxJava 3.0 đã được phát hành, nhưng tôi nghĩ sẽ tốt hơn nếu chỉ coi nó như việc thêm nhiều hàm toán tử mới vào 3.0 rồi chuyển sang 3.0 sau khi củng cố các khái niệm với phiên bản 2.x.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Dành cho những ai muốn dễ dàng triển khai lập trình không đồng bộ trong Java

  • Dành cho những ai muốn dễ dàng hiểu phương pháp lập trình khai báo

  • Dành cho những ai muốn vượt qua rào cản gia nhập lập trình Reactive

  • Dành cho những ai muốn củng cố vững chắc kiến thức cơ bản về lập trình Reactive để sử dụng Reactor, WebFlux tốt hơn trong Spring Boot.

  • Những ai còn nhớ bài giảng “[Câu chuyện về Lộ trình Nhà phát triển Java dễ hiểu của Kevin]”

Cần biết trước khi bắt đầu?

  • Java

  • Sự khác biệt giữa lập trình đồng bộ và lập trình bất đồng bộ

Xin chào
Đây là

6,326

Học viên

235

Đánh giá

108

Trả lời

4.8

Xếp hạng

6

Các khóa học

- 주력 언어 또는 기술 : Java, Spring Framework, RxJava, Reactor, Spring WebFlux

- (주)코드스테이츠(https://www.codestates.com)에서 Senior Educational Software Engineer(Backend)로 활동
(From 2022.03 To 2024.01.31)

- 프리랜서 개발자 및 강사로 활동(From 2024.02)

- 저서

안녕하세요? Kevin이라고 합니다. ^^

인프런에서 이렇게 강사로서 여러분들을 만나게 되어서 너무 반갑습니다.

어떤 분야든 마찬가지겠지만 특히나 소프트웨어 개발자는 끊임없이 변화하는 트렌드에 뒤처지지 않도록 항상 자기 자신을 갈고 닦는것이 개발자로써 살아남는 유일한 방법이라고 생각하며 항상 배우는 자세로 즐겁게 소프트웨어 개발을 하고 있는 개발자 중 한 명입니다.

제가 가지고 있는 지식과 경험이 다른 분들에게 조금이나마 도움이 되기를 바라면서 인프런에서 강좌를 시작하였습니다.

앞으로 수강생분들에게 현실적으로 도움이 되는 다양한 강좌로 꾸준히 찾아뵙도록 하겠습니다. 감사합니다.

 

질문이나 의견은 언제든지 환영하니, 이메일(it.village.host@gmail.com)로 편하게 얘기해주세요.

 

Chương trình giảng dạy

Tất cả

18 bài giảng ∙ (7giờ 30phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

51 đánh giá

4.9

51 đánh giá

  • kevin님의 프로필 이미지
    kevin

    Đánh giá 3

    Đánh giá trung bình 5.0

    5

    94% đã tham gia

    Hello! I am the instructor. This is my first time leaving a review after taking a class. ^^ Although I created the course, I took it all the way through, so I will leave an objective and subjective review regardless of the rating. I almost removed most of the noise from the microphone, but there was still some noise from my own speech. ^^; I will try to improve as I create new courses, so I would appreciate your generous understanding. In my personal opinion, I think this is a good course to learn the concept of reactive programming, and I think it is a good course to listen to in advance to use WebFlux in Spring, the trend in Java development. ^^ I will occasionally talk about Reactor and WebFlux in the [News] notice. See you again in class, students! ^^;;

    • susia71792821님의 프로필 이미지
      susia71792821

      Đánh giá 1

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      This is a good lecture where you can practice using various operators used in Observable of reactiveJAVA with examples and actual usage. If you just learn the examples provided here well and build up references, you will be able to use them usefully in real life.

      • greatyun님의 프로필 이미지
        greatyun

        Đánh giá 3

        Đánh giá trung bình 5.0

        5

        100% đã tham gia

        I've read a lot of other books to understand RxJava, but I couldn't understand the translated books at all, so I only studied through the documents.. This lecture is really well-structured. I think it's a great lecture to shorten the time for those who study while looking at the documents.!! I wish there were more reinforced lecture content for RxKotlin!!

        • kevin
          Giảng viên

          I'm glad to hear that it was helpful. I think that the concept of grasping the big picture is really important for any technology, so I tried my best to organize it so that it would be as easy to understand as possible. ^^ I think that the application after that is up to the students. I'm sure they'll do better than me. Thank you.

      • mindle229513님의 프로필 이미지
        mindle229513

        Đánh giá 1

        Đánh giá trung bình 5.0

        5

        94% đã tham gia

        The lecture helped me a lot in understanding RxJAVA. In each lecture, there is a beginning and end, an explanation of the next lecture, easy and core explanations and lecture materials, example codes, etc., so I thought that you prepared a lot while taking the lecture. In particular, the explanation of the operator used virtual data that could actually occur, so it was very helpful to imagine in which situations the operator would be good to use. I am still confused about why the producer and consumer have subscribe at the same time, so I will pay attention to that part when I watch the lecture again. Thank you for providing a great lecture.

        • kevin
          Giảng viên

          One of the biggest goals in making this course was to help you easily get started with reactive programming, and I'm so happy that you understand my intentions exactly. ^^;; I'm so glad it was helpful. In the real world, producers and consumers are mostly separated, but in the software world, it's natural that it's not familiar to subscribe and receive data through the producer's object. I'd like to tell you that this part will become a little clearer if you come across server/client communication using reactive programming. I'm so glad that you were able to take a step into reactive programming. See you again. Thank you~

      • devil54629496님의 프로필 이미지
        devil54629496

        Đánh giá 1

        Đánh giá trung bình 5.0

        5

        39% đã tham gia

        Teacher! Thank you for the great lecture. It was very helpful because you explained difficult content in an easy-to-understand way. Thanks to you, I am learning a lot.

        • kevin
          Giảng viên

          I'm glad it was of some help. ^^ Thank you!

      925.403 ₫

      Khóa học khác của Kevin

      Hãy khám phá các khóa học khác của giảng viên!

      Khóa học tương tự

      Khám phá các khóa học khác trong cùng lĩnh vực!