daisuzz.log

Spring Fest2019に参加しました

12/18に開催されたSpringFest 2019に参加してきたので、忘備録として書いていきます。 https://springfest2019.springframework.jp/

From Spring Boot 2.2 to Spring Boot 2.3

https://www.slideshare.net/makingx/from-spring-boot-22-to-spring-boot-23-jsug

基調講演として、Spring I/O 2019の雰囲気の紹介から始まり、Spring Boot 2.2の機能の紹介、GraalVMによるnative image化のデモ、最後にSpring Boot 2.3の紹介や今後のロードマップについて話されたセッションでした。 詳細はスライドを見てもらえればと思います。 個人的にはSpring Boot 2.2で実現されたImmutable Configuration Propertiesが地味に嬉しいと感じました。KotlinでConfigurationPropertiesを書くときに毎回lateinit varをフィールドに付与していたのが微妙でしたが、この変更でConstructor Injectionを使えるようになりました。 Sprign Data R2DBCがGAされたり、RSocketをサポートしたり、Reactive関連の環境も少しずつ充実してきた印象を受けたので、業務で利用せずとも触ってみたいなとおもいました。

Azure Spring Cloudの紹介

https://www.slideshare.net/tyoshio2002/jjug-ccc-2019-fall-azure-spring-cloud

Spring Oneで10月に発表されたMicrosoftとPivotalが共同で開発したSpringBootアプリケーション専用のPaaSで現時点でPreview版だそうです。

セッション中に紹介していた、AzureにおけるSpringのサポートドキュメントがAzure限らずマネージドサービスでSpringアプリケーションを開発するための参考になりそうでした。 http://aka.ms/spring-java-jp

LINE公式アカウントのチャットシステムにおけるSpringおよびWebFluxの活用事例

https://speakerdeck.com/line_developers/examples-of-using-spring-and-webflux-in-the-chat-system-for-line-official-accounts

LINE公式アカウントのチャットシステムでSpring WebFluxを導入した際の設計方針や困ったことを発表されていました。 個人的には、NettyのOOMEについてのトラブルシューティングの話がとても面白かったです。実装されているソースコードをしっかり読み込んで理解した上で原因を特定していることや、その特定した原因をすぐにIssueとして報告する姿勢は特に参考にしたいと思いました。 また、MDCを使ったロギングを知らなかったのと、Spring WebFluxの知識がほとんどなかったので、これを期に実際に調べて利用してみようと思いました。

NissanConnectの舞台裏で動くSpringBoot/SpringCloud

https://www.slideshare.net/DaisukeMorishita1/spring-boot-and-spring-cloud-inside-nissanconnect-at-spring-fest-19

日産でのSpring Boot, Spring Cloudを用いた開発事例の紹介セッションでした。 Spring CloudやSpring Boot Actuatorなどの細かい使い方まで紹介されていました。モノリシックなアプリケーションをマイクロサービスに移行していくときは、小さいコンポーネントを少しずつ切り出していくのが得策だと改めた感じましたし、フランスとのやりとりが発生してなかなか上手く物事を進められないもどかしさもとても共感できました。

RSocket徹底入門

https://docs.google.com/presentation/d/1ygSM85-RQ3NZjCg6RaZ52mGzxbWiItVwzlCpr1vaWBw/edit#slide=id.g75f375afa0_0_0

RSocketについてデモや解説を交えながら詳しく教えてくれるセッションでした。 発表当時、RSocketについておそらく世界で一番詳しい発表資料だとおっしゃられていました。

Efficient Web Apps with Spring Boot2

https://github.com/snicoll さんによる、↓のサンプルコードを使ったServlet StyleのSpringでReactive Styleの機能を利用する改善のライブコーディングをおこなうセッションでした。

https://github.com/snicoll/initializr-stats

実際にServlet Styleのアプリケーションに対して、Reactive Styleを適用させていく方法がイメージしやすかったですし、思っていたよりもかなり簡単に導入できていたのが意外でした。

感想

全体を通して、Spring WebFluxやRSocketなどのReactive Styleの話や、GraalVMを用いたNative Image, Spring Cloud Configなどのマイクロサービスの話が多かった印象を受けました。

前年度はSpringでReactive Styleに対応していきますよーという段階の話が多かったが、今回はLINEがReactive Styleを用いた実装事例を話していたように、具体的にプロダクション環境でReactive Styleを利用できる段階まで来ていることを実感しました。

その一方でSpringにおいてテストのライブラリをどう使っていくかという発表がとても人気だったので、テスト設計など現状の業務で悩みどころになりそうな話を知りたい人は多いんだなと感じました。