採択
2021/11/21 15:00〜
Track B (#jjug_ccc_b)
Video:40min + Live:10min
Intermediate Others Standard

Kafka Cluster Design Patterns 2021 Fall

tansan_engineer 須田 桂伍

プレゼンタイプ / Presentation Type [Standard]:
レベル / Level [Intermediate]:
カテゴリー / Categories [Others]:
後日セッション動画の公開を希望する / Agree to publish your session video [Yes]:

Abstract:
Apache Kafkaはメッセージングだけでなくストリーム処理の基盤としても有力な選択肢のひとつとなりました。昨今ではManaged Serviceとしても提供されるようになり、アプリケーションからの利用もよりしやすくなってきました。一方でより柔軟なシステム構成やシステム要求に応えるためにIaaS等でKafkaを運用するケースも多いかと思います。

本セッションではKafkaの特徴を最大限に活かすためのKafka Clusterの構成パターンについて、その特徴や適したシーン、設計構築時の考慮ポイントをデザインパターンとして整理します。
また、Kafka StreamsやKafka ConnectといったKafkaを中心とした主要なエコシステムを組み合わせた場合の設計・構築ポイントにも触れていきながら様々な観点からClusterの構成パターンを探求していきます。

3
採択
2021/11/21 15:00〜
Track C (#jjug_ccc_c)
Video:40min + Live:10min
Beginner Tools Standard

Debeziumで変更データキャプチャを学ぼう

yy_yank yy_yank

プレゼンタイプ / スタンダード
レベル / Beginner
カテゴリー / Tools
後日セッション動画の公開を希望する / No

Abstract:
モノリシックなサービスをマイクロサービス化する際、データの移行・同期などは大きな障壁となります。そんな際、有効なアプローチの一つが変更データキャプチャと言われています(もちろん他のユースケースでも有効です)
そんな、変更データキャプチャツールとして代表的なDebeziumを実際のサンプルコードを交えて学んで見よう!というセッションです。

2
採択
2021/11/21 15:00〜
Track D (#jjug_ccc_d)
Video:15min + Live:10min
Beginner Others Standard

暗算脳トレアプリで学ぶモデリング

aa7th Abe Asami

プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: Standard
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Beginner
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Cloud / JVM / DevOps / Tools / Community / Others]: Otheres
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: Yes

Abstract:
次の暗算脳トレアプリを題材として、モデリングの話をします。

SAMMY7th/MentalArithmeticGame: Java(SpringBoot)製の暗算脳トレゲーム
https://github.com/SAMMY7th/MentalArithmeticGame

具体的には

・どのような考え方でモデリングし、コーディングを進めていったか。
・JIGでのコードからの設計の可視化について。
・仕様の追加、変更を行う様子。

について話す予定です。

2
採択
2021/11/21 15:25〜
Track D (#jjug_ccc_d)
Video:15min + Live:10min
Beginner Community Standard

今のうちに!オンラインの英語Javaカンファレンスに慣れて渡航再開とともに現地参加(あまつさえ講演も)できる状態になっておこう!

jyukutyo 阪田 浩一

プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: Standard
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Beginner
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Cloud / JVM / DevOps / Tools / Community / Others]: Community
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: Yes

Abstract:
「海外のカンファレンスは平気な方?どんどん行ってもらうから」という感じのやり取りも面接でありました。東京に引っ越し1年半が経ちましたが転職以来まだ海を渡っていません。代わってオンラインの海外カンファレンスに参加するようなりました。セッションをライブで観たり録画で観たり。それで気づいたんです。海外カンファレンス未経験の人にはオンラインで慣れておくのがよいかもって。とはいえ国内の勉強会と同じくオンラインでは海外カンファレンスの楽しさは半分くらいしかないのも事実です。だから渡航できない今のうちにオンラインで慣れてもらい、渡航再開後に現地に行くというシナリオが一番よいように思います。このセッションでは、数々のオンライン海外カンファレンスを観まくり、さらにはオンラインの英語登壇(録画ではなくライブで30分!)までやってみた私じゅくちょーが、海外カンファレンスや英語セッションの楽しみ方や攻略法、英語登壇の笑い話をお話します。気軽に聞いていただける15分です。

5
採択
2021/11/21 16:00〜
Track A (#jjug_ccc_a)
Sponsor Session (Video:40min + Live:10min)
Beginner DevOps Tools Standard

GitHub Actionsを使って学んだCI/CD環境のあれこれ

大城 夏樹

プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: Standard
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Beginner
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Spring / Cloud / JVM / DevOps / Tools / Mothod / Community / Others]: DevOps、Tools
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: Yes

概要 / Abstract:
 開発側と運用側が連携・協力し合い、開発を効率良く進める考え方(DevOps)が浸透してく中で
 DevOpsを実現するために、CI/CDに関するツールやサービスも数多く出てきています。
 今回は、そのCI/CDの代表的なツール「Jenkins!」ではなく、
 「GitHub Actions」と「Javaへの静的解析等」を使用して、CI/CD環境の構築の流れと、
 そこで私が学んだ気づき等をご紹介したいと思います。

 これからGitHub Actionsを利用する方や静的解析でJavaのバグ検出(品質向上)やその自動化等に
 興味のある方は是非ご視聴ください。
 少しでもGitHub Actionsの理解に役立てていただければ幸いです。

7
採択
2021/11/21 16:00〜
Track B (#jjug_ccc_b)
Sponsor Session (Video:40min + Live:10min)
Intermediate DevOps Tools Method Standard

400種類以上のAPI連携をどうやって開発・サポートしているのか? データパイプラインツール CData Sync の中身

sugimomoto 杉本 和也 / CData Software Japan

プレゼンタイプ / Presentation Type [Standard]:
レベル / Level [Intermediate]:
カテゴリー / Categories [DevOps / Tools / Method]:
後日セッション動画の公開を希望する / Agree to publish your session video [Yes]:

概要 / Abstract:
最近見たあるレポートでは1社あたりで使われているSaaSの数が「80」に迫っているというデータがあったのですが、皆さんご存知でしょうか?
そのような背景もあり、昨今のクラウドサービスや社内アプリで「外部APIと連携したい」という需要は日増しに強まっているのが、開発者の皆さんの中でもはっきりと認識されているのではないかなと思います。

私の会社のプロダクトでもSsaS等の外部APIからデータを取得し、RDBやDWHにデータ連携するパイプラインツールを提供しています。
対応しているAPIはリリース4年で400種類を超えていますが、1つ2つのAPIに対応するならまだしも、ここまで増えているAPIに継続的かつスケールしながら提供スピードを維持するというのは、いろいろな工夫を踏まえなければ実現できません。

このセッションでは、こういったAPI連携の需要や背景・数多く存在する仕様・API Updateに対してプロダクトとしてどのように臨むのか? ポイントとなる2つの要素「アーキテクチャ」と「インターフェース」を軸に解説しながら、皆さんのAPI連携を行う際のヒントにしていただけるような情報を提供するセッションを予定しています。

採択
2021/11/21 16:00〜
Track C (#jjug_ccc_c)
Video:40min + Live:10min
Intermediate Tools Method Standard

TDD: seriously, try it!

icougil Nacho Cougil

プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]:
Standard

レベル / Level [Choose either from Beginner / Intermediate / Advanced]:
Intermediate to Advanced 😉

カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Cloud / JVM / DevOps / Tools / Community / Others]:
Tools and Others?: TDD is a practice, so I don’t know where it fits better 😅

後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]:
Yes

Abstract:
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?

Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.

We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.

At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code 😉

3
採択
2021/11/21 16:00〜
Track D (#jjug_ccc_d)
Video:15min + Live:10min
Intermediate Java SE Standard

巨大なトランザクションを分解せよ!イベント駆動入門 in Spring Framework

nrslib 成瀬 允宣

プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: Standard
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Intermediate
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Cloud / JVM / DevOps / Tools / Community / Others]: Java SE
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: No

Abstract:
はじめはコンパクトであったビジネスロジックも、長く運用が続けられると様々な要求が突き付けられ、次第に複雑な処理を行わざるを得なくなるときが訪れます。
そんなとき、一切の考慮もせず、単純にコードを伸ばしていくと、トランザクションの範囲が無秩序に広がってしまうことがあります。
巨大なトランザクションは容易に競合を発生させ、ロックを引き起こし、ソフトウェアの性能を低下させます。
トランザクションは可能な限り小さいサイズに抑えるべきなのです。

そこで、本トークでは巨大なトランザクションを最小限に分解して、ロックの可能性を少しでも減らす方法として、イベントを用いたイベント駆動によるトランザクションの分解についてコードベースで解説します。

なお、サンプルコード全体の構成はドメイン駆動設計のパターンを意識した形で、アーキテクチャは ADOP ないしヘキサゴナルアーキテクチャをベースとします。
Spring Framework が用意しているドメイン駆動設計のパターンを意識したモジュールを利用しますので、ドメイン駆動設計を採用したいと考えている開発者にもお勧めの内容です。
「リポジトリ」や「集約」といったトピックに対する予備知識があるとより楽しめるでしょう。

11
採択
2021/11/21 17:00〜
Track A (#jjug_ccc_a)
Video:40min + Live:10min
Intermediate Java SE Standard

Getting the Most from Modern Java

speakjava Simon Ritter

プレゼンタイプ / Presentation Type [Standard]:
レベル / Level [Intermediate]:
カテゴリー / Categories [Java SE]:
後日セッション動画の公開を希望する / Agree to publish your session video [Yes]:

With the release of JDK 17, we have had nine (yes nine!) versions of Java in four years.

Java developers are now being provided with more new features at a faster pace than at any time in its over quarter-century history.

Many of these new features provide exciting new language level changes, as well as useful new APIs.

In this session, we’ll explore in detail what these changes are and how best to use them (as well as advice on when not to use them). We’ll also explain the significance of preview features and incubator modules.

We’ll cover the following new language features:

• Switch expressions (JDK 12)
• Text blocks (JDK 13)
• Records (JDK 14)
• Pattern matching for instanceof (JDK 14)
• Sealed classes and changes to Records (JDK 15)
• Pattern matching for switch (JDK 17)

For each recent JDK, we’ll also highlight the most useful additions to the core class libraries such as the Vector, Foreign-Memory Access and Foreign Function APIs.
Abstract:

3
採択
2021/11/21 17:00〜
Track B (#jjug_ccc_b)
Video:40min + Live:10min
Intermediate Architecture Standard

Building for Resiliency, Fault-Tolerance, Scalability and Your User's Expectation

noctarius2k Chris Engelbert

プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: Standard
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Intermediate
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Cloud / JVM / DevOps / Tools / Community / Others]: Others, Architecture
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: Yes

Abstract:
The past decade changed the world. The internet, web applications, and mobile apps are as common as never before. Building service infrastructures for the ever increasing number of users and devices has its challenges though. Three main concepts help us meet the user's expectation of always-on: Resiliency, Fault-Tolerance, and Scalability. Let's explore and learn them together, and how to achieve the impossible.

3
採択
2021/11/21 17:00〜
Track D (#jjug_ccc_d)
Video:40min + Live:10min
Beginner Community Standard

Javaとコミュニティの歩み

jjug 日本Javaユーザーグループ 鈴木雄介/杉山貴章

プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: Standard
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Beginner
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Spring / Cloud / JVM / DevOps / Tools / Mothod / Community / Others]: Community
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: No

概要 / Abstract:
1995年にSun MicrosystemsがJavaを発表してから26年が経ちました。
Javaの成功は、産みの親であるSun Microsystemsやその後継でるOracleだけでは成し得たものではありません。
Javaの発展の裏には企業やコミュニティを巻き込んださまざまな事件があります。そしてそれらを乗り越えることで、JavaはOSSとして成熟してきました。

このセッションでは、Javaの歴史の中で、企業を含めたコミュニティがいかにその発展を支えてきたのかを振り返ります。
そして最後に、日本Javaユーザーグループ(JJUG)の活動について少しだけ紹介します。

6