はじめに
Kotlinを使った事は全然無いですが、過去のLTテーマで発表された「これどうやって動いてるんだ? Spring Framework/Bootのソースを読む」や「Kotlin向けOSSに貢献してきて感じたアレコレ」の資料を読んだことがありました。
これらの資料が非常に勉強になったのもあり、面白そうだったので初めて参加してみました。
参考リンク
- Server-Side Kotlin LT大会 vol.13 - connpass
- Server-Side Kotlin Meetup - connpass
- #serverside_kotlin_meetup - 検索 / X
LT編
LTでは、5名の方の発表を聞きました。
それぞれ勉強になりましたが、特に以下の二つの発表は面白かったです。
「品質の高い機能を"早く"提供するために技術的な面でチームでやったこと、やりたいこと」by 茂木 康汰(@TTrpbm)さん
「Railway Oriented Programming を オニオンアーキテクチャに適用する by kotlin-result」by 佐藤有斗(@Yuiiitoto)さん
「品質の高い機能を"早く"提供するために技術的な面でチームでやったこと、やりたいこと」
茂木 康汰(@TTrpbm)さん
スライド:
4つの観点を踏まえて、チームでの工夫を紹介していました。
その観点の一つでもある「開発の型化」は、ある意味アーキテクチャや規約等で制限を絞ることで、迷う時間を減らす効果を狙っているのかなと感じました。
テーブルアサーションの工夫で紹介されている通り、自動生成や統一した方法を採用することで、実装より量が多くなりがちなテストの効率化をしているんだなと考えました。
またこれからやりたい事に記載されていたテストコードの自動生成も、層を絞れば効率的にテストを作成でき、かつ他の重要な部分にリソースを割けると思うので、これはうちでも真似したい。
特にController層なんかはほぼやっていること一緒だし、OpenAPIから自動生成されたコードを利用しているので、なんとかできそう。
「Railway Oriented Programming を オニオンアーキテクチャに適用する by kotlin-result」
佐藤有斗(@Yuiiitoto)さん
スライド:
Railway Oriented Programmingの説明から、それをどう使うかという視点でのポイントを紹介していました。
そもそも関数型的なエラーハンドリングの設計手法を知らなかったのと、合成という概念が新しく感じて面白かったです。
各層の役割やそれを踏まえての設計、型で正常や複数の異常ケースを表現出来るということが凄く勉強になりました。
Javaならどう書くのかあまりイメージができなかったので、これは宿題に。
自作で作るのかな???クラスと仮型パラメータとコンストラクタでの制御で作るイメージ??
今回紹介されていたKotlinでRailway Oriented Programmingができるライブラリの、kotlin-result。これを少し見ていくか。
懇親会
非常に贅沢な時間を過ごしました。
今回の発表者である佐藤さんに、自身のAPIテストの考え方や運用を含めたいくつかの質問をさせてもらいました。
話を聞いていると、書籍「単体テストの考え方/使い方」に記載されている内容を参考にしてテスト全体を捉えられている感じを受けました。
テストを行う理由や工夫点、考え方を教えていただき、新しい観点を得られました。
また他の参加者の方にも同様の話を聞き、各社様々な目的がありそれに合った形を自分たちで模索している様でした。
ここら辺がまだまだ解像度が低いので、きっちり材料を集めて検討したいと思います。
あと上記書籍も早く読み進めなきゃ。
最後に
今回のLTでは竹澤 有貴(@ex_takezawa)さんも参加されており、「あ!PHPの現場(47.現場での設計論や方法論との向かい方(ytake/kurikazu/omoon))で聞いたことある声だ!」と一人で勝手にテンションが上がっていました。
こうした外部技術イベントへの参加はこうした出会いや繋がりができたり、シンプルに勉強になったりと良いことが多いです。
いつかは自分が発表したいですね。
会場を貸してくださったSansanさん、運営の皆様本当にありがとうございました!