サイトアイコン L is B BLOG

Spring Fest 2018 に一般参加者として参加してきました

こんにちわ、サーバーの Java プログラムを書いている持田です。

先日(2018/10/31)開催された Spring Fest 2018 に一般参加者として参加してきました。こちらはそのカンファレンスレポートになります。

Keynote

Sébastien Deleuze による Spring Framework 、 Java 、 Kotlin の今を紹介するキーノートです。ここ最近のトピックを完結にまとめているものでした。主なトピックとしては次のとおりです。

キーノートでしたので、わりと広めの内容を扱っていましたが、今後の Spring の方向性として、起動をもっと速くする、Kotlin、Reactive(Kotlin Coroutine)があげられると思います。

Spring Data for Apache Geode で RDB いらずのアプリ開発をしよう!

山河 征紀さんによる Spring Data for Apache Geode の入門セッションです。以前からインプレース・データ処理が気になってはいたのですが、僕自身が不勉強すぎて入門すらしていなかったので、ちょうどよいセッションでした(以前に JJUG CCC で Java Cache のセッションがあったのですが、理解できていなかった)。

Apache Geode は Hazelcast や Infinispan 、 Oracle Coherence と並ぶインメモリーデータグリッドと呼ばれるミドルウェアで、 Java のオブジェクトをそのままの形で保持するデータストアとして利用できます。データレイヤーが柔軟なためスケールアウトしやすい、イベント駆動処理ができるなどの特徴があります。雑に言えばキャッシュです。

Spring Data は様々なデータストアに対して一定のプログラミングモデルによるアクセスを提供するライブラリーです。 Spring Data for Apache Geode においても、 Geode 固有の設定などを隠蔽して、他のデータストアと変わらないインターフェースで操作を可能にしています。

といった Spring Data for Apache Geode の基本的な説明から始まり、具体的な実装方法を紹介していくという内容でした。個人的にいくつか疑問が残ったところがあるものの、そちらは今後実際に手を動かして確認していくということにして、取っ掛かりとして非常に良いセッションでした。

実際のプロジェクトで Spring アプリを Kotlin で開発して得た気づき集

事実上の Kotlin エヴァンジェリスト 長澤太郎 さんのサーバーサイド Kotlin に関するセッション。立ち見が出るほどの人気セッションで改めて Kotlin への関心の高さがわかるセッションでした。主な内容は以下の通り。

本セッションでは値の検証に Bean Validation が取り上げられていましたが、個人的には Pivotal の 槙さん が開発する Yavi(「ヤヴァイ」と読む) を組み合わせるのがよいかと思いました。

Knative: Serving your Serverless Java Service on Kubernetes the 12-Factor way

Red Hat の Kamesh Sampath さんによる Knative のセッションでした。現在故あって Serverless を実現するソフトウェアを探していてちょうどよいかと思って受講してみたのですが、あまりに Knative のこと等知らなすぎてちょっと理解できませんでした… とはいえ、 OpenWhiskNucliofission というソフトウェアがあることがわかったので、あとで調べてみます。

Pivotal 認定講師が解説! 基礎からの OAuth 2.0 と Spring Security 5.1 による実装

Pivotal 認定講師(Pivotal が提供する Spring の研修の講師ができる) 多田真敏 さんによる Spring Security の特に OAuth 2.0 に関する部分に特化した解説のセッション。ここ最近は OAuth 2.0 を忘れつつあったので復習のつもりで受講しました。ざっと概要部分をまとめると以下の通り。

Spring Boot with Kotlin, functrional configuration and GraalVM

Sébastien Deleuze による(本日2回目の)セッション。最初はキーノートの振り返りでした。Spring Fu 、 Spring KoFu 、 Spring JaFu および GraalVM による起動時間の短縮方法の紹介。

Spring や Spring Boot ではデフォルトの Codec が Jackson であるのは(知らなくてもいいけど)Conventionとなっているのに対して、 Spring Fu では codec ブロックで明示的に指定する必要があったり、 Autowired で自動でインジェクトされてた(ゆえに、何がインジェクトされるのか知らないと意図しない動作になることがある)Bean も、 beans ブロックにて明示的に生成するようになるあたりが今までの Spring のやり方と Spring Fu でのやり方で異なる箇所のようでした。

業務で使いたい WebFlux による Reactive プログラミング

日本で3人目(4人目)の Java Champion である 谷本心 さんによるWebFluxの解説のセッションです。

僕自身は Spring 5 のリリース以来個人で Spring WebFlux および Reactor の勉強をしていたので、学習内容のレビュー的な位置づけとして受講したセッションになりました。前半は Reactor の入門で、後半がマイクロサービスにおける WebFlux + WebClient の利用例の紹介というセッションでした。マイクロサービスにおけるN + 1問題(DBでやる2回にリクエストをまとめて発行する方法がアンチパターンになる)というのがあるんだなということがわかりました。


感想

L is B のサーバー群では残念ながら Spring をほとんど利用していないため、直接的には本カンファレンスの内容が業務には適用できませんが、 Spring プロダクトは最新の考え方や技術を積極的に取り込むため参考になるところが多く、有意義な時間が過ごせたと思います。


L is B では Java のプログラムを書いて、ビジネスでのコミュニケーションをブーストさせたいエンジニアを募集しています。 僕とトゥギャザーしてワークしたい君は、こちらにアクセスしてエントリーしよう!

モバイルバージョンを終了