Scala用のライブラリ集であるAirframeに関して学ぶミートアップ、Airframe Meetup #3へ参加してきました。第1回、第2回と絶妙に参加できないタイミングでの開催だったので、次こそは!と思っていましたが、タイミングが今回は合って参加することができました。
そもそもAirframeというのは、作者の@taroleoさんがScalaを使った実プロジェクトの中で得られた知見を元に作られていて、非常に実用的なライブラリ集です。Dependency Injection、JSON、MessagePack、HTTP、Loggingなど多種に渡る機能が一通りそろっています。
詳しくは公式ドキュメントを見てください。
リポジトリは、以下のリンク先に有ります。
Scala、コレクションライブラリを除くとコアライブラリもそこまで品揃えは充実しておらず(ときどき分離されたりするし)、かといって定番ライブラリも同じジャンルにけっこう似たようなものが多く、選ぶのに苦労します。そんな時に、まずはこれを見て用途に合っているものが有るか、探せるのは非常に有りがたいですね。
今回は、そんなAirframeの最近の開発状況が紹介され、続けてLT3本という構成でした。特に、@taroleoさんによるAirframe specの紹介と、GitHub Actionでビルドを効率化した話が興味深かったですね。
Scalaの定番のテスティングフレームワークである、ScalaTestや、Specs2などのは割と機能が豊富過ぎて、どこから手をつけていいのか分かりづらいところがあって(なんであんな多数の記法をサポートしているのか…)、Airframe Specは、ミニマルと、過剰の中間を狙った、という話に感心しました。Airframe SpecでScalaのテストに入門するのはありだな、と思いました。
資料のリンク先を張っておきます。
あと、まだ資料は公開されていませんが、LTの最後は@takezoenさんによるDependency Injectionの歴史や、各ライブラリの特性についてのご紹介でした。
おわりに
@taroleoさんの落ち着いたトーンでのしゃべり方が、イベント全体の雰囲気を形作っていて、空気感が良かったですね。落ち着いていて、そして非常に正しいエンジニアリングというか、問題をきちんと解決する方法を考え、実行し、広めていくっていう姿勢が見られて非常に感銘を受けました。
あと、@taroleoさんは、「データ指向アプリケーションデザイン」の監訳を行われた訳ですが、終わった後の会場でその辺の話になったのが良かったですね。もっと話を聞きたかった。
データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理
- 作者: Martin Kleppmann,斉藤太郎,玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2019/07/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
- 作者: Martin Kleppmann
- 出版社/メーカー: O'Reilly Media
- 発売日: 2017/04/11
- メディア: ペーパーバック
- この商品を含むブログを見る
また、ぜひ参加したい、と思わせてくれる、そんなミートアップでした。