강의

멘토링

로드맵

BEST
Programming

/

Programming Language

Kevinの分かりやすいRxJava 1部

リアクティブプログラミングという参入障壁を乗り越えたいですか? KevinのわかりやすいRxJavaが、その壁を乗り越える力を育ててくれます。

  • Kevin
Functional Programming
RxJava
Reactive Streams
Reactive Programming

学習した受講者のレビュー

こんなことが学べます

  • リアクティブプログラミングの確かな基礎

  • 宣言型プログラミングの理解

  • RxJava を使用した非同期プログラミング

  • Javaの関数型インターフェースとラムダ式

  • リアクティブ演算子をマーブルダイアグラムで理解する

  • クイズを通じたリアクティブ演算子の深化学習

リアクティブプログラミング、わかりやすく確実に学びましょう!

リアクティブプログラミングとは何ですか?

  • 狭い意味では、複雑な非同期要求を効果的に処理するための非同期プログラミングのためのAPIと言えます。
  • 広い意味では、実行する動作を具体的に明示する命令型プログラミング方式と反対の概念である宣言型プログラミングのパラダイムといえます。
  • リアクティブプログラミングは、クライアントの要求に即座に応答するように設計されたリアクティブシステムに欠かせないプログラミングモデルです。
  • リアクティブプログラミングは、非同期通信が必要なほとんどの開発言語およびフレームワークで幅広く使用されています。
    ex) Angular、ReactなどでのRxJS、JavaでのRxJava、AndroidでのRxAndroid、Spring Frameworkで使用するReactor、RxScalaなど、リアクティブ拡張が広く使われています。

なぜアクティブなプログラミングを学ぶべきですか?

  • リアクティブプログラミングは、非同期要求を効果的に処理するための開発パラダイムであると述べました。
  • 今日のアプリケーションでは、同期要求よりも非同期要求を処理する割合がますます高まっています。
  • Javaのスレッドを使用した非同期プログラミングは複雑さがかなり高く、予期しないエラーが発生する可能性も高いことが事実です。
  • リアクティブプログラミングは、スレッドを直接使用しながら発生する問題を代わりに解決し、非同期プログラミングの複雑さを簡素化します。
  • ただし、宣言型プログラムに適応するために一定の時間が必要です。
  • それである程度の進入障壁があるのも事実です。しかし、皆さんが越えられない障壁ではないと思います。
  • 決定的には、リアクティブプログラミングを通じてあなたの開発スキルが一段と向上することはもちろん、開発者として開発への考え方の転換を経験できる素晴らしいきっかけになると思います。

第1部講義ではどんなことを学べますか?

  • KevinのわかりやすいRxJavaパート1では、最初にリアクティブプログラミングとは何かについて簡単な例を挙げて説明します。どのプログラミング言語でも、その言語の大きな枠組みの中での特徴を理解し、学習を始めることは非常に重要だと思います。
  • リアクティブプログラミングで欠かせないマーベル図を見る方法を図でできるだけ簡単に説明し、受講生たちが一人でもマーベル図を理解できるように努めました。

【マーベル図の見方 講義資料キャプチャ】

  • RxJavaは、リアクティブプログラミングの仕様であるReactive Streamsの実装です。この Reactive Streams で定義された Publisher と Subscriber の間の動作フローを図を通して簡単に理解できるようにしました。

[PublisherとSubscriber間の動作フロー講義資料のキャプチャ]

  • FlowableとObservableの決定的な違いである背圧について、できるだけ簡単に説明します。

【背圧の概念に関する講義資料の取り込み】

  • RxJavaで使用される関数型プログラミングの基本的な概念を学びます。 Java 8で新しく導入された関数型インタフェースとラムダ式は、RxJavaで広く使用されているプログラミング手法で、その概念を理解し渡すための基本的な概念を簡単に説明します。
  • RxJavaで使用される演算子(Operator)関数について説明し、RxJavaのパート1を終了します。 RxJavaは演算子関数で始まり、演算子関数で終わっても過言ではないほど、演算子関数はRxJavaで最も重要な部分です。今回の講義では、演算子関数の型別にさまざまな演算子関数をマーブル図と一緒に理解し、サンプルコードを直接実行させながら、それぞれの演算子関数がどのような機能をしてどのように動作するかを理解させていただきます。

私たちの講義の特徴は何ですか?

  • 初心者の目の高さに合わせて、リアクティブプログラミングの核心概念をできるだけ簡単に理解しようと努力しました。
  • 単に講義資料の説明だけではなく、授業ごとにその授業のサンプルコードの説明が無条件に続きます。つまり、講義資料だけでは理解できない部分は、例コードで具体的に説明し、サンプルコードを直接実行して結果を確認して理解できるように努めました。
  • クイズが必要なチャプターにはクイズを提供し、受講生たちがその講義を復習しながら自分のものにする時間を持つようにしました。
  • 講義で使用したすべてのサンプルコードをgithub( https://github.com/ITVillage-Kevin/rxjava )に提供し、受講者がサンプルコードを直接入力し、コードを実行して結果を確認するのに役立つようにしました。

講義を聞く前に何を準備する必要がありますか?

  • 当然の話ですが、お使いのPCやノートパソコンにJDK 1.8以上がインストールされている必要があります。
  • 私たちの講義では、開発ツールとしてIntelliJ IDEを使用しました。講義でIntelliJをベースにした実習環境の構築について説明しますが、IntelliJに慣れていない方は、従来使用しているIDEで実習をしても構いません。
  • 私たちの講義を聞くためにあなたが準備しなければならない最も重要な準備は、新しい技術を学びたいという意志と決してあきらめない粘りです。 ^^

あなたの意志と忍耐を私に見せてください。皆さんがRxJavaの進入障壁の上に上がるように、私も最善を尽くしてお手伝いします。

あなたはどんなことが気になりましたか?(Q&A)

Q. 非専攻者も聞くことができますか?
A. 専攻/非専攻とは無関係です。 Javaに関する基本的な知識があれば誰でも受講可能だと思います。ちなみに私も最初の始まりは非専攻者でした。 ^^

Q. RxJavaを学ぶと何がいいですか?
A. 先ほど紹介文でもお話ししましたが、RxJavaを学ぶと複雑な非同期プログラミングを簡素化でき、ちなみに命令型プログラミング方式ではなく宣言型プログラミングを通じてプログラミングに対する思考の切り替えができます。より良い開発者に成長するのはおそらくでしょうか?^^ RxJavaを学んだ後は、リアクティブプログラミングの基本を確実に固めることができるので、RxJs、RxAndroid、Spring Reactorなどを学習する方がはるかに簡単になります。

Q. 講義はどのように進行しますか?
A. ほとんどの授業が講義資料を通じた概念の理解 → サンプルコードを通じて概念を目で直接確認する方法で進行され、クイズが必要な授業には受講生たちが直接クイズを解いて該当の授業の内容を自分のものにすることができるように授業が終わる前にクイズを提示しました。

Q.レッスンで使用されたオリジナルのサンプルコードはどこからダウンロードできますか?
A.レッスンで説明されているサンプルコードはすべてgithubにあり、以下のアドレスからダウンロードできます。
•サンプルソースソースコード:
https: //github.com/ITVillage-Kevin/rxjava

新しいプロジェクトを作成してサンプルコードを直接入力する場合は、githubのサンプルコードからcommonパッケージとutilsパッケージを必ずコピー/貼り付けてから、コードを書いてください。

Q. 講義資料はどこからダウンロードできますか?
A. 各セクションの授業ごとに授業に使用した講義資料を添付ファイルとして登録しておいたので、必要な方はダウンロードして参考にしてください。

Q. 講義資料以外におすすめの参考資料がありますか?
A. リアクティブプログラミングを学ぶのに役立つサイトは、以下で確認できます。

http://reactivex.io/
リアクティブプログラミングの公式サイトとして、リアクティブプログラミングの基礎を固めた後に参考にするのは本当に良いサイトだと思います。

https://github.com/reactive-streams/reactive-streams-jvm
RxJavaはReactive Streamsを実装した実装体と言えます。このReactive Streamsの仕様を定義しておいたgithub公式資料です。

https://gist.github.com/casamia918/93b8db69beb9ee06b92a96b2a234d48e
リアクティブプログラミングについて韓国語によく翻訳されたgithub資料です。韓国語に翻訳していただきありがとうございますとお伝えしたいですね。

https://rxmarbles.com/
リアクティブプログラミングの核心の中で核心と言える演算子(Operator)をマーブル図でよくまとめた資料です。

http://reactivex.io/RxJava/2.x/javadoc/
最後に、RxJavaの公式javadocドキュメントです。 2020年現在、RxJava 3.0がリリースされているが、3.0では新しい演算子関数が多く追加されたと単純に考え、2.xバージョンで概念をしっかりとつかんでから3.0に進むのが良いと思われます。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Javaの非同期プログラミングを簡単に実装したい方々

  • 宣言型プログラミング方式を分かりやすく理解したい方

  • リアクティブプログラミングという参入障壁を乗り越えたい方々

  • Spring BootでReactor、WebFluxをもっと活用するために、リアクティブプログラミングの基本をしっかりと身につけたい方

  • [Kevinの分かりやすいJava開発者ロードマップの話] 講義を覚えてくださっている方々

前提知識、
必要でしょうか?

  • ジャバ

  • 同期プログラミングと非同期プログラミングの違い

こんにちは
です。

6,317

受講生

235

受講レビュー

108

回答

4.8

講座評価

6

講座

- 주력 언어 또는 기술 : 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)로 편하게 얘기해주세요.

 

カリキュラム

全体

18件 ∙ (7時間 30分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

51件

4.9

51件の受講レビュー

  • kevin님의 프로필 이미지
    kevin

    受講レビュー 3

    平均評価 5.0

    5

    94% 受講後に作成

    こんにちは!講師です。私が最初の受講後期を残すようになりましたね。 ^^ 私が作った講義ですが、私も最後まで受講をしましたので、別点とは関係なく客観的な受講評を主観的に残してみます。マイクから出たノイズはほとんど除去しましたが、私の声から出るノイズはまだ少し残っていました。 ^^;新しい講義を作りながらどんどん良くなるよう努力しますので、寛大に見ていただければ幸いです。個人的な考えでは、リアクティブプログラミングの概念をつかむには悪くない講義だと思い、Java開発の大勢であるSpringでWebFluxを使うためにあらかじめ入っておけば大丈夫な講義だと思います。 ^^ ReactorとWebFluxについての話は、[ニュース]のお知らせでたまに行うようにします。それでは講義でまた会いましょう受講生の皆さん! ^^;;

    • susia71792821님의 프로필 이미지
      susia71792821

      受講レビュー 1

      平均評価 5.0

      5

      100% 受講後に作成

      reactiveJAVAのObservableで使われる様々な演算子を例とともに実際の使い方まで直接練習できる良い講義である。 ここで出てきた例だけをよく習得し、リファレンスだけを積み重ねても実戦で有用に参考にできるように。

      • greatyun님의 프로필 이미지
        greatyun

        受講レビュー 3

        平均評価 5.0

        5

        100% 受講後に作成

        RxJavaを理解するために他の本をたくさん見ましたが、翻訳書は導通を理解していないため、文書だけで勉強しました。 このレッスンは本当に理解しやすい構成です。ドキュメントを見ながら勉強される方々の時間を短縮するためのとても良い講義だと思います。 RxKotlinも補強された講義の内容があったらと思います!

        • kevin
          知識共有者

          役に立ったと思いますので、私も嬉しいです。 ^^ その後の応用は受講生たちの分け前だと思います。私よりもよくやっています。ありがとうございます。

      • mindle229513님의 프로필 이미지
        mindle229513

        受講レビュー 1

        平均評価 5.0

        5

        94% 受講後に作成

        講座を通じてRxJAVAを理解するのに多くの助けになりました。 各講座でスタートと仕上げ、次の講義の説明、簡単で重要な説明と講義資料、サンプルコードなど、講座を聴きながら準備をたくさんしていただきたいと考えました。 特に、演算子の説明は実際に発生する可能性のある仮想データを使用しており、どのような状況でその演算子を使用すればよいか想像するのに役立ちました。 まだ私が生産者と消費者がsubscribeをなぜ同時持っているのか混同され、講座を振り返るとき、その部分を留意してみようと思います。 良い講義を提供していただきありがとうございます。

        • kevin
          知識共有者

          この講義を作った最大の目標の中で、一つがリアクティブプログラミングに簡単に入門できるように手助けしようとするのですが、私の意図を正確に知っていらっしゃるようで顔が熱くなりますね。 ^^;;助けられたなんてとても嬉しいです。現実世界では、生産者と消費者はほとんど分離されていますが、ソフトウェアの世界では、生産者のオブジェクトを通じて購読をしてデータを渡すのに慣れていないのが当然です。リアクティブプログラミングを使ったサーバー/クライアント通信に触れてみると、この部分がもう少し明確になるという事実を申し上げたいです。リアクティブプログラミングに足を踏み入れることができるようになったのでとても嬉しいです。それではまたお会いしましょう。ありがとうございます〜

      • devil54629496님의 프로필 이미지
        devil54629496

        受講レビュー 1

        平均評価 5.0

        5

        39% 受講後に作成

        講師!素晴らしい講義ありがとうございます。 難しい内容 わかりやすくよく説明してくださり、大変助かりました。 おかげでよく学んでいきます。

        • kevin
          知識共有者

          少しでも助けてくれたのは幸いですね。^^ ありがとうございます!

      期間限定セール、あと19:33:29日で終了

      ¥4,133

      22%

      ¥5,338

      Kevinの他の講座

      知識共有者の他の講座を見てみましょう!

      似ている講座

      同じ分野の他の講座を見てみましょう!