採択
2021/11/21 10:00〜
Track A (#jjug_ccc_a)
Video:40min + Live:10min
Beginner JVM BeginnerSpeaker

GraalVM を普通の Java VM として使う ― クラウドベンチマークでの比較

石井 佑弥 

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

Abstract:
クラウドや多言語の環境に対応できる 新しいJava実行環境 GraalVM は,
ネイティブビルドだけでなく,通常の Java VM として使うこともでき,
パフォーマンス向上の工夫も行われつつあります。
このたび,クラウド環境用ベンチマーク BluePerf を使い,GraalVM と
OpenJDK を比較したので,結果を報告します。

6
採択
2021/11/21 10:00〜
Track B (#jjug_ccc_b)
Video:40min + Live:10min
Beginner Jakarta EE Standard

Applied Domain-Driven Design Blueprints for Jakarta EE

reza_rahman Reza Rahman

プレゼンタイプ / 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]: Jakarta EE
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: Yes

Abstract:
Domain-Driven Design (DDD) is an architectural approach that strongly focuses on materializing the business domain in enterprise software through disciplined object-oriented analysis. This session demonstrates first-hand how DDD can be elegantly implemented using Jakarta EE via an open source project named Cargo Tracker.

Cargo Tracker maps DDD concepts like entities, value objects, aggregates and repositories to Jakarta EE code examples in a realistic application. We will also see how DDD concepts like the bounded context are invaluable to designing pragmatic microservices.

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

勤怠管理サービスでの継続的テストの取り組み

yuya yamaguchi

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

Abstract:
SPA(Spring Boot + Vue.js)を採用した勤怠管理サービスを開発しています。勤怠管理サービスは日々変化する出退勤や休暇などの勤怠情報を用いた計算処理が複雑であるという特徴があり、テストが重要となっています。
テストが重要であるにも関わらず専任のテスターがおらず、開発者がテストも担当しています。そのため、2020年10月のリリース前からCI/CDパイプラインへのテストの組み込みとテストの自動化を進めていました。

このセッションでは継続的テストに始めたい方向けにこれまでの取り組みの実例をご紹介します。

5
採択
2021/11/21 12:30〜
Track A (#jjug_ccc_a)
Video:40min + Live:10min
StepUp Beginner Java SE Standard

Java ジェネリクス入門

nagise なぎせゆうき

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

Abstract:
Javaのジェネリクスについての入門セッションです。
ジェネリックに設計された標準ライブラリを利用するために必要な知識を身に着けることを目標とします。

・ジェネリクスの概要と利用の動機
・メソッドスコープとインスタンススコープ
・構文編 3種の<>
・変性と境界
・イレイジャについてよく誤解されること
・Java標準APIのジェネリクス事例

7
採択
2021/11/21 12:30〜
Track D (#jjug_ccc_d)
Video:40min + Live:10min
Beginner JVM Standard

Kotlinを研究する

doyaaaaaken 小山 健太

プレゼンタイプ: Standard
レベル: Beginner
カテゴリー: JVM
後日セッション動画の公開を希望する: Yes

Abstract:
KotlinはJVMで動作する静的型付けのオブジェクト指向プログラミング言語です。
モダンな記法が使えることや、Java/Scala等のJVM言語の文法と類似性が高く学習コストが低いことから、サーバーサイド・Androidを中心とした開発において利用される機会が増えています。

発表では『Kotlinはどんな言語で何を目指しているのか』について考察したいと思います。
客観的な事実や公表されているデータを元にKotlinについて読み解いていきます。
発表の特徴としては、可能な限り客観的な情報による分析を行うことで極力偏らない内容になっており、それに補足する形でKotlinを4年程使ってきた登壇者個人の主観的見解も交えていきます。

<目次>

  1. 公式ドキュメントから読み解くKotlin
  2. 歴史から読み解くKotlin
  3. サーベイから読み解くKotlin
  4. 言語仕様から読み解くKotlin
  5. 標準ライブラリから読み解くKotlin
  6. 実装パターンから読み解くKotlin
  7. 公式声明から読み解く今後のKotlin

<発表の目標>
・Kotlinを使ったことがない人に、興味深い知識や技術選定のための検討材料を提供する
・Kotlinをすでに使っている人に、言語思想などに関する理解を深めてもらう

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

Head toward Java 17 and Java 18

sugarlife KUBOTA Yuji

プレゼンタイプ / 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:
まいどおなじみ最新のJava技術についてお届けします!

本セッションでは2021年9月にリリースされたJava 17、そして予定通りであれば2022年3月にリリース予定のJava 18についてどのような機能や変更点が入ったのか・入る予定なのかを紹介し、「このセッションさえ聞けば今の最新状況が分かる!」を目指します。

Java 17は多くのJDKディストリビューターでLTSとなるバージョンであるため、バージョンアップを検討しているところも多いのではないでしょうか。一方で、LTSかどうかに関わらず一定品質以上を保ちつつ提供することをポリシーとしているため、Java 17でも従来通り試験的な(IncubatorやPreview)機能が導入されています。Java 17ではSealedクラスの標準機能化やForeign Function & Memory APIの導入の他、RMI Activationの削除やApplet APIの非推奨化などのアップデートが行われており、今後の開発や運用に影響を与える変更が加わっています。発表当日までのJava 18の開発状況を含めて、未だ止まることなく進化を続けるJavaを余すどころなくお伝えしていきます!

9
採択
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 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 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