「JSUG勉強会 2020その1 Spring x Kotlin」に参加しました
「JSUG勉強会 2020その1 Spring x Kotlin」に参加しました。
会場に行く途中、Lodgeというコーワーキングスペースを通ったのですがとっても綺麗でした。
羨ましい。
普段Java×Springで開発していますが、今後kotlinを導入できたらと思い参加しました。
備忘録としてメモに残しておきます。
KotlinでSpring 完全理解ガイド 長澤 太郎さん (Ubie株式会社)
Spring Initializerを使えばSpringで簡単に開発できる。
ビルドツールをgradleにするとスクリプトがkotlinで記述される。
アノテーションでbean登録やハンドラ定義ができる
問題1:Kotlinではデフォルトで継承を許可しない。
open修飾子をつけて許可する。(面倒、ダサい)
→allopenプラグインが公式である(kotlin-springプラグイン)
Spring Initializerで作れば最初から入ってるので意識しなくてOK。
問題2:バリデーションに注意
アノテーションがフィールドにかからない。
→@field: をつける
nullを代入できるかどうか定義できる。
→Intの後ろに?をつける。
kotlinにはプリミティブという概念がない。
kotlin用DSLを使って比較的あたらいいbean登録やハンドラ定義ができる
RouterDSLを使ってハンドラを簡単にかけるので便利。
ktlint Linter兼Fomatter おすすめ
WebFluxでkotlinのこルーチンという機能が便利
kotlinにはコルーチンがある。
kotlinでもJUnitを使ったテスト
JUnit5を普通に使える。
アサーションライブラリは何がいい?
→AssertJを使ってる。assertkが気になる。
kotlinでモックするならMockKがいい感じ
基本的なことは一通りできる。
番外:よくある質問
「DBアクセスはどうしてる?」
Ubie株式会社さんではJDBCテンプレート。生のSQL書いてマッピングしてる。
感想
Javaをやってきた人ならkotlin抵抗なく入っていけそうです。
環境は整ってきているのでらしいので、Better Javaとして取り組む価値はありそうだと感じました。
Spring 5.2におけるKotlinサポート 木原 快さん (ヤフー株式会社)
www.slideshare.net
Spring × Kotlin
Spring5で初めてkotlinをサポート
サーバーサイドkotlinが使われるきっかけになった。
どうやって始めるか
Spring Initializerを使う
Java <->Kotlin
コードスニペットにKotlinが追加された
WebMvc.fn
RouterFunctionとは
従来のアノテーションベースとは異なる新たなルーティング方法
Spring5.3から追加された @Configurationアノテーションを使って`Bean定義をしていく
MockMvcDSL
指定するパラメータが増えてきた時、すっきりするのでおすすめ
@ConfigurationProperties
Boot2.1
MutableでのBinding
Boot2.2.0
@ConstructorBindingでImmutable Binding
@ConstructorBindingのみでスキャン対象
Boot2.2.1
@ConstructorBindingでImmutable Binding
@ConfigurationPropertiesScan or @EnableAutoConfigurationが必要
Coroutines
Coroutinesとは処理の中断再開が容易な計算インスタンス。軽量スレットみたいなもの。 WebFluxでいくつかサポートが入った。 →kotlinらしく、より簡単に並列に処理できる
質疑応答
・Javaプロジェクトにkotlinを導入する際の注意点は?
nullの部分とか仕様が異なるところがあるので、注意が必要。
考慮しないといけないことが増えるので、あまり混在させないほうがいいかもしれない。
・DBコネクション数についてなんか聞いてました。
聞きそびれました。。
コネクションプールが枯渇するような状況はまだない。って言ってた
・コルーチンの制約はありますか?
ブロッキングはなるべく呼び出さない方がいい。
スレッドに依存するライブラリを使うときとかは苦労する。 ログとか。
感想
自分のレベルでは少し難しかったので、メモにあまり自信がありません。。
実際に触って勉強してみます。