今週土日に開催された「ScalaMatsuri 2023」に久々に聴講しました。 最後に参加したのが2019年だったので約3年ぶりとなり、今回は初めてのZoom(とDiscord)での聴講で最初の入室に戸惑ったものの、後は最後までスムーズに聴く事ができました。
1日目
CSVインポートで学ぶ実例関数型入門
CSVインポートのユースケースで、単一項目のエラーや相関関係のあるエラーをCatsのValidatedで検証し、それを集約して関数型的に表現する方法が興味深かったです。
traverseを制するものはコードを制す
イテレーターパターンのループ処理の中でbreakなどの分岐をtraverseを使って表現する過程が大変分かりやすく解説されていました。特に前述のCSVインポートの例だと”エラーが見つかったら止まる”と”エラーがある個所を全て列挙する”のどちらも表現できるところが面白いと思いました。
2日目
解説動画作成ツールをScalaで作成している話
XMLのツリー構造を平らにflattenする、レンダリングや通信を非同期に並行して行う、など動画変換の生成ツールの分野でもScalaが有効活用できるという具体的な事例が参考になりました。
おわりに
最近は仕事でコードを書く機会が増えたので、前回参加させてもらった時とはまた別の視点で楽しむことができました。特にエラーハンドリングやドメイン周りの表現力はやはりScalaならではと改めて感じたので、その辺を仕事にどうやってフィードバックしていくか考えていきたいです。