🎉Kevinの分かりやすいRxJava 2部発売🎉
リアクティブプログラミング、今回も確実にお知らせします!
リアクティブプログラミングとは何ですか?
- 狭い意味では、複雑な非同期要求を効果的に処理するための非同期プログラミングのためのAPIと言えます。
- 広い意味では、実行する動作を具体的に明示する命令型プログラミング方式と反対の概念である宣言型プログラミングのパラダイムといえます。
- リアクティブプログラミングは、クライアントの要求に即座に応答するように設計されたリアクティブシステムに欠かせないプログラミングモデルです。
- リアクティブプログラミングは、非同期通信が必要なほとんどの開発言語およびフレームワークで幅広く使用されています。
ex) Angular、ReactなどでのRxJS、JavaでのRxJava、AndroidでのRxAndroid、Spring Frameworkで使用するReactor、RxScalaなど、リアクティブ拡張が広く使われています。
なぜアクティブなプログラミングを学ぶべきですか?
- リアクティブプログラミングは、非同期要求を効果的に処理するための開発パラダイムであると述べました。
- 今日のアプリケーションでは、同期要求よりも非同期要求を処理する割合がますます高まっています。
- Javaのスレッドを使用した非同期プログラミングは複雑さがかなり高く、予期しないエラーが発生する可能性も高いことが事実です。
- リアクティブプログラミングは、スレッドを直接使用しながら発生する問題を代わりに解決し、非同期プログラミングの複雑さを簡素化します。
- ただし、宣言型プログラムに適応するために一定の時間が必要です。
- それである程度の進入障壁があるのも事実です。しかし、皆さんが越えられない障壁ではないと思います。
- 決定的には、リアクティブプログラミングを通じてあなたの開発スキルが一段と向上することはもちろん、開発者として開発への考え方の転換を経験できる素晴らしいきっかけになると思います。
第2部講義でどんなことを学べますか?
- KevinのわかりやすいRxJavaパート2では、パート1で話していなかったHot Publisher、スケジューラ、デバッグ、テストに関する講義を行います。そして最後に、パート1、パート2で学んだRxJavaをSpring Bootでどのように活用できるか、実習を通して感覚をつかみます。
- まず、パート1で短く言及し、超えたCold PublisherとHot Publisherについてレビューをした後、Hot Publisherの種類とそれぞれの特徴をマーベル図とサンプルコードで習得できるようにしました。
[Cold Publisherレビュー講義資料キャプチャ]
【Hot Publisherレビュー講義資料キャプチャ】
- RxJavaでは、スケジューラはどのような意味を持つコンポーネントであり、スケジューラの役割は何かを見てみましょう。 RxJavaでのスケジューラという意味を理解するために、まずオペレーティングシステム上で実行されるプロセスとプロセスサブのスレッドの概念と動作方法を図で簡単に説明し、RxJavaでのスケジューラがどのような役割を果たしているのか受講生たちが確実に理解できるように努めました。
【スレッドの概念講義資料キャプチャ】
- RxJavaは宣言型プログラムで構成されており、非同期プログラミングであるため、RxJavaのコードをデバッグすることは容易ではありません。パート2レッスンでは、デバッグセクションを介してRxJavaのコードをどのようにデバッグできるかを学ぶことができます。
- アプリケーションを開発する上でテストはとても重要な領域の一つだと思います。非同期プログラミングであるRxJavaのコードをJavaでの一般的な方法でテストするには限界があります。 RxJavaで自分が実装したコードのテストを効果的に進めるためにどのような方法を使用しているかをテストセクションで学ぶことができます。
- パート2の最後のセクションでは、その間に学んだRxJavaプログラミングをSpring Bootでどのように利用できるかについての実践プロジェクトを進めます。実践プロジェクト自体は簡単ですが、アプリケーションの開発にRxJavaをどのように活用できるかについての洞察を得ることができます。
【実践プロジェクトの動作フロー講義資料の取り込み】
- 最後に、このレッスンの学習を終えた後、リアクティブプログラミングに関連する将来の学習ロードマップを提示します。
私たちの講義の特徴は何ですか?
- 初心者の目の高さに合わせて、リアクティブプログラミングの核心概念をできるだけ簡単に理解しようと努力しました。
- 単に講義資料の説明だけではなく、授業ごとにその授業のサンプルコードの説明が無条件に続きます。つまり、講義資料だけでは理解できない部分は、例コードで具体的に説明し、サンプルコードを直接実行して結果を確認して理解できるように努めました。
- 講義で使用したすべてのサンプルコードをgithubに提供し、受講生がサンプルコードを直接入力し、コードを実行して結果を確認するために参考にできるようにしました。
講義を聞く前に何を準備する必要がありますか?
- 当然の話ですが、お使いのPCやノートパソコンにJDK 1.8以上がインストールされている必要があります。
- 私たちの講義では、開発ツールとしてIntelliJ IDEを使用しました。 IntelliJに慣れていない方は、従来使用しているIDEで実習をしても構いません。
- 私たちの講義を聞くためにあなたが準備しなければならない最も重要な準備は、新しい技術を学びたいという意志と決してあきらめない粘りです。 ^^
あなたの意志と忍耐を私に見せてください。皆さんがRxJavaの進入障壁の上に上がるように、私も最善を尽くしてお手伝いします。
前の講義を一緒に見る 👀
皆さんはどんなことが気になりましたか? (Q&A)🙋♀️🙋♂️
Q. 非専攻者も聞くことができますか?
A. 専攻/非専攻とは無関係です。 Javaに関する基本的な知識があれば誰でも受講可能だと思います。ちなみに私も最初の始まりは非専攻者でした。 ^^ ただし、2部講義は1部講義を受講した後に聞くと学習理解度がより高くなると思います。
Q. RxJavaを学ぶと何がいいですか?
A. 先ほど紹介文でもお話ししましたが、RxJavaを学ぶと複雑な非同期プログラミングを簡素化でき、ちなみに命令型プログラミング方式ではなく宣言型プログラミングを通じてプログラミングに対する思考の切り替えができます。より良い開発者に成長するのはおそらくでしょうか?^^ RxJavaを学んだ後は、リアクティブプログラミングの基本を確実に固めることができるので、RxJs、RxAndroid、Spring Reactorなどを学習する方がはるかに簡単になります。
Q. 講義はどのように進行しますか?
A. ほとんどの授業が講義資料を通じた概念理解 → サンプルコードを通じて概念を目で直接確認する方法で進行されます。パート1では、サンプルコードに加えて追加のクイズを提供しましたが、パート2レッスンには別のクイズはありませんので、参考にしてください。
Q.レッスンで使用されたオリジナルのサンプルコードはどこからダウンロードできますか?
A.レッスンで説明されているサンプルコードはすべてgithubにあり、以下のアドレスからダウンロードできます。
•サンプルソースソースコード: https://github.com/ITVillage-Kevin/rxjava-episode2
•実践プロジェクトソースソースコード(サーバー側) :https://github.com/ITVillage-Kevin/rxjava-episode2-practice
•実践プロジェクトソースソースコード(クライアント側) : https://github.com/ITVillage-Kevin/rxjava-episode2-practice-client
Q. 講義資料はどこからダウンロードできますか?
A. 各セクションの授業ごとに授業に使用した講義資料を添付ファイルとして登録しておいたので、必要な方はダウンロードして参考にしてください。
Q. 講義資料以外におすすめの参考資料がありますか?
A. リアクティブプログラミングを学ぶのに役立つサイトは、以下で確認できます。