CA.ktに登壇してServer Side Kotlinについて話してきた。


CA.kt #3で登壇しました。テーマは「FRESH!プロジェクト/Server Side Kotlin 活用事例」。スライドはこちら。

speakerdeck.com

約1年前にFRESH!チームにジョインしてKotlinに出会いServer Side Kotlinと向き合ってきた経験を話してきた。

Server Side Kotlinの導入事例やIdeomatic Kotlin Codeをテーマにしたコード事例を紹介したり、Spring Boot 2.0とgRPCのチャレンジ、DBアクセスには何を使ってるの?、テストは?、Apiドキュメンテーションは?など、Server Side Kotlinを俯瞰して横断的な内容をまとめられと思う。

興味ある方は是非スライドを参照ください👀

そして今回のエントリは、これまでアウトプットしてきたServer Side Kotlin、Spring Boot 2.0、gRPC方面のエントリを総集編的にまとめていきたい。会場で出会えた方にもブログの存在をアピールできたし、「で、そのブログにはどんなエントリあるの?」って少なからず感じてもらえたと思うので応えたい。

Sever Side Kotlin

Kotlinを始めてまず取り掛かったのがテストコード。JavaではJMockitoにお世話になっていたがKotlinで動かないことに絶望を感じたのが記憶にある。JMockitoが使えないならKotlinでどのようにコードの品質を担保するのか!!と差し迫った時期のエントリ。

KotlinでMockテストのまとめ - 平日インプット週末アウトプットぶろぐ


DelegateとKotlinコルーチンについてまとめたエントリ。ここらへんの話も発表に入れたかった。

Kotlin コルーチンでasync/awaitをつかってgRPC Serverをリクエストしてみた - 平日インプット週末アウトプットぶろぐ

KotlinでConstructor Injectionが増えてきたからDelegateをつかってリファクタリングしてみた - 平日インプット週末アウトプットぶろぐ


純正KotlinのJSONパーサーのKlaxonについてのエントリ。この記事はアクセス数が結構ある。JSONパースって必須と感じる。

Kotlinで快適なJSONパース。Klaxon: JSON for Kotlinを使ってみた。 - 平日インプット週末アウトプットぶろぐ

Spring Boot 2.0.0

Spring Boot 2.0.0+ Kotlin動きそう? HTTPサーバのInterceptorってどうなってるの? を疑問に思ってまとめたエントリ。

Spring5.0 + KotlinではDoma、Request Interceptorあたりはどうなっているのか調べてみた - 平日インプット週末アウトプットぶろぐ


Spring Framework 5から提供が始まったRouter Function DSLのテスト方法についてまとめたエントリ。

Spring5.0 + KotlinのRouterFunctionのテストはどうすればよいか? 試してみた - 平日インプット週末アウトプットぶろぐ


Spring Boot 2.0.0 Milestone versionではSpringFox(Swagger)やSpring Rest DocsなどのAPIドキュメンテーションツールのサポートが不完全なので、その時期にどうやって解決したかアウトプットしたエントリ。

SpringBoot 2.0とapiDocを連携させてみた - 平日インプット週末アウトプットぶろぐ

gRPC

protobuf typeについてまとめたエントリ。まだ試していない型がたくさんあるしgRPC楽しい。

protobuf typeに日付型のcom.google.protobuf.Timestampをつかってみた - 平日インプット週末アウトプットぶろぐ

protobuf typeに値が入っているか確認するにはgoogle/protobuf/wrappers.protoをつかうとよい - 平日インプット週末アウトプットぶろぐ

protoの運用について考えたエントリ。protodep便利。

Kotlin + gradleでgRPCプロトコル定義ファイル(.proto)のvendoringにprotodepをつかってみた - 平日インプット週末アウトプットぶろぐ


gRPC Contextについてまとめたエントリ。gRPCはInterceptorを使ってContextに値を入れたり取り出したりすることがある。AOPには必須な知識。

Kotlin + gRPCでio.grpc.Contextをつかってログ出力を横断処理してみた - 平日インプット週末アウトプットぶろぐ


gRPC Client/Serverのテスト方法をまとめたエントリ。

gRPC serverのmetadataをテストする方法をまとめる - 平日インプット週末アウトプットぶろぐ

grpc-javaのClient/ServerのテストをKotlinで書く - Client編 - 平日インプット週末アウトプットぶろぐ

grpc-javaのClient/ServerのテストをKotlinで書く - Server編 - 平日インプット週末アウトプットぶろぐ


エンドクライアント(iOSやAndroid)のgRPC ClientとgRPC Serverの通信にTLSを有効にするためにはどうすればよいのか?を調べてアウトプットしたエントリ。

KotlinでgRPC。SSL/TLSを有効にする方法をまとめた。 - 平日インプット週末アウトプットぶろぐ

KotlinでgRPC。grpc-javaのTLS with JDKとTLS with OpenSSLの使い方をまとめた。 - 平日インプット週末アウトプットぶろぐ


TLSについてまとめたけどALPN対応できなくて焦って問題解決できた経緯をまとめたエントリ。

grpc-javaのServerでTLSを有効にした場合はALPN対応しているか確認すべし - 平日インプット週末アウトプットぶろぐ

まとめ

次回はgrpc-gatewayのアウトプットをしようと計画中。