見出し画像

第13回 Server-Side Kotlin Meetup イベント開催 & エンジニア大橋の登壇レポート


スマートラウンドでエンジニアをしている福本です!

私が運営に関わっているサーバサイドKotlinのコミュニティServer-Side Kotlin Meetup」で、第13回イベントを10/25(金)に開催しました!

事前の告知noteは以下となりますので、背景も含め興味のある方はそちらも併せてご覧ください👇

ちなみに、前回の第12回イベントのレポートは以下となります👇️

今回は残念ながらイベントのアーカイブ映像が残っていないので、こちらで色々な情報を残しておきたいと思います!ぜひ最後までご覧ください🤝


会場の様子🏟️

告知noteでもたくさん紹介した、Sansanさんのエグい新オフィスが会場です。素敵すぎるのでもう一回写真載せちゃう。

みんなこれの前で写真撮ってた

ちなみに、当日はたくさんの方にお越しいただき、ほぼ満席となりました🎉 みんな(たぶん)サーバサイドKotlinエンジニアなんだぜ….これ….。

会場にひしめくKotlinエンジニア

開始 ~ LT 🎤

今回は招待・公募のLT会だったので、ここからは各LTのご紹介と感想を書いていきたいと思います👇️ 司会しながらだったので、メモの内容が薄かったらごめんな。

Kotlin Meets Data-Oriented Programming: Kotlinで実践する「データ指向プログラミング」

大橋 賢人(@lagenorhynque)
株式会社スマートラウンドで、スタートアップと投資家の業務を効率化するデータ作成・共有プラットフォームsmartroundを開発するエンジニア。Clojure, Haskellなどの関数型言語や関数型プログラミングの実践が好きです(Java, Scala, KotlinとJVM言語も好きです)。Kotlin Fest 2024のCfPとして提出したテーマKotlin Meets Data-Oriented Programming: Kotlinで実践する「データ指向プログラミング」についてLTします。

冒頭は招待LTとして、我らがスマートラウンドの大橋さんの登壇 👏

関数型/データ志向プログラミングの考えや原則をKotlinに取り入れたらどうなるのか、そこから得られる示唆は何なのか…という話をしてくれました!半分くらいClojureの話をしていた気がします。ここがClojureコミュニティか…。

ちなみに、同様のアプローチを2日後の10/27(日)に行われたJJUG CCC 2024 Fallの登壇でもされてました👏 おまわりさんこの人ずっと関数型の話してます。

関数型ナンモワカラン&OOPの世界でずっと生きてきた自分としては、契約プログラミングなどのデータの表現についてはかなり参考になると思いました🤔 面白い。

品質の高い機能を”早く”提供するために技術的な面でチームでやったこと、やりたいこと

茂木 康汰(@TTrpbm)
Sansan株式会社のインボイス管理サービス Bill One の Web アプリケーションエンジニアです。お客様に早く高品質な価値を提供することがが好きで、PdL(プロダクトリード)という役割をしています。最近はKotlinやセキュリティに興味があります。

次は、会場提供をしていただいたSansanさんから、Ktorを採用しているBill Oneの開発者である茂木さんにLTをしていただきました 👏

Bill Oneを開発する際に、チーム内で取り組んだことを紹介していただきました。誠に参考になる。

スライドp.5より抜粋

Resultkotlin-resultを使ってエラーハンドリングをいい感じにして開発リードタイムを縮めたり、Cliktなどのライブラリを用いたテストコードの自動生成など、試したくなるトピックがたくさんありました。

チームの開発効率については、Sansanさんの以下スライドも参照されており、そちらにも色々と書かれていましたので、合わせてご覧ください👇️

Railway Oriented Programming を オニオンアーキテクチャに適用する by kotlin-result

佐藤有斗(@Yuiiitoto)
株式会社ログラスで経営管理クラウドLoglassを開発するエンジニア。KotlinとReactと関数型プログラミング、単体テストなどが好きです。kotlin-treeというKotlinで木構造を宣言的に扱うためのOSSをたまに開発しています。Kotlin Fest 2024のCfPとして提出した kotlin-resultでどのようにRailway Oriented Programmingをするかについて話します。

続いては、招待LTでログラス佐藤有斗さんに登壇いただきました!みんな大好きkotlin-resultRailway Oriented Programmingをやる話🛤️

まず最初に、Railway Oriented Programming自体の説明から入ってくれました👇️異常/正常を型で表現しながら設計していく手法ですね。

スライドp.6から抜粋

会場の方も個人的にも気になっていたのが「どの層でResultを使うのか?」というテーマ。ログラスさんはApplication創とDomain創で使ってるみたいです🚆Domain層がResultを返して、受け取ったApplication層がResultを返す処理をゴニョゴニョして、それを受け取ったPresentation層で例外に変換しているとのこと。

「Infrastructure層ではユーザーが自力復帰できるエラーが少ないので、基本的にはResultを返さない」という点など、Resultをどう使うべきかしっかり考えて運用されているなと感じました。

Kotlin2でdataクラスの copyメソッドを禁止する

三田 英一(@Eichisanden)
株式会社ログラスで「人員計画 Loglass」を開発しているエンジニアです。 サーバーサイドはKotlin、フロントエンドはTypeScript+Reactで開発しています。 今まで様々な言語を使ってきましたがKotlinは堅牢な型がありつつ書き味の良さもあって1番好きな言語です。

続いては公募LTで、またもやログラスから三田さんの登壇です🎉

資料の通り、Kotlinのdata classではpublicなcopyメソッドが生えてしまうことで、不正なインスタンスが作られる可能性があります。これについて、Kotlin2.0.20から実装されるcopyメソッドの可視性変更が段階的に行われるみたいですね👇️知らなかった…。

スライドp.9より抜粋

Kotlin 2.2までには対応しておく必要がありそうなので、そのやり方も合わせて最後にシェアしていただきました。助かります!

Kotlinでもアクターモデルを導入してCQRS/ESを実践しよう!

竹澤 有貴(@ex_takezawa)
千株式会社 CTO。Go、Scalaを利用したデータ基盤開発、インフラストラクチャ分野の改善・再構築、マネジメントやプロダクト開発のサポートやデータ戦略などを担当。スケーラブルなアプリケーション開発、ストリーム処理、リアクティブシステムやマイクロサービスアーキテクチャの支援、ドメイン駆動設計導入サポートなどにも携わる。

最後にこちらも招待LTとして、千株式会社の竹澤さんに登壇いただきました🤝

資料はないので一部をお届け..という形になりますが、タイトルの通りアクターモデルの話を中心にされていました。アクターモデルの説明に「ネズミ講です!」と言っていて、自分も参加者の方も腹を抱えて笑っていました。

ちなみに、Kotlinでアクター(モデル)ベースのプログラミングを行うにはPekkoなどのライブラリを使うみたいです。PekkoをKotlinでやるときのサンプルコードのリポジトリを竹澤さんが公開されてました🎉 気になる方はぜひ参考にしてください。

また、アクターとも関係が深いCQRS + ESのカンファレンスの運営に竹澤さんが関わっているとのことです。アクター興味ある勢は参加しましょう👇️

懇親会🍺

これでプログラムは以上!お疲れ様でした!

というわけで、LT終了後は恒例の懇親会タイム🍻Sansanさんのご厚意により、おいしい飲み物と食べ物をいただきました。天国だ…。

そしてありがたいことに、懇親会の最後まで参加いただいた方がほとんどで、楽しくワイワイ過ごすことができました。お疲れ様でした!


さいごに

今回のイベントの振り返りは以上です。ここまで読んでいただきありがとうございます🙌

改めてですが、登壇や運営にご協力いただいた皆さま、会場を提供いただいたSansanの方々、そしてイベントに遊びに来ていただいた皆さま、誠にありがとうございました!

ちなみに、次のServer-Side Kotlin Meetup 第14回のイベントも開催を考えております👏興味のある方はいつでも遊びに来て下さい!Xのアカウント(@Kotlin_Meetup)でイベントの予定を発信してまいりますので、あわせてフォローしてもらえると嬉しいです。

また、スマートラウンドのサーバサイドKotlinの取り組みや開発に興味がある方は、ぜひ以下の採用サイトをご覧ください🐣


この記事が参加している募集