Magnolia Tech

いつもコードのことばかり考えている人のために。

Airframe Meetup #3へ参加しました

airframe.connpass.com

Scala用のライブラリ集であるAirframeに関して学ぶミートアップ、Airframe Meetup #3へ参加してきました。第1回、第2回と絶妙に参加できないタイミングでの開催だったので、次こそは!と思っていましたが、タイミングが今回は合って参加することができました。

そもそもAirframeというのは、作者の@taroleoさんがScalaを使った実プロジェクトの中で得られた知見を元に作られていて、非常に実用的なライブラリ集です。Dependency Injection、JSON、MessagePack、HTTP、Loggingなど多種に渡る機能が一通りそろっています。

詳しくは公式ドキュメントを見てください。

wvlet.org

リポジトリは、以下のリンク先に有ります。

github.com

Scala、コレクションライブラリを除くとコアライブラリもそこまで品揃えは充実しておらず(ときどき分離されたりするし)、かといって定番ライブラリも同じジャンルにけっこう似たようなものが多く、選ぶのに苦労します。そんな時に、まずはこれを見て用途に合っているものが有るか、探せるのは非常に有りがたいですね。

今回は、そんなAirframeの最近の開発状況が紹介され、続けてLT3本という構成でした。特に、@taroleoさんによるAirframe specの紹介と、GitHub Actionでビルドを効率化した話が興味深かったですね。

Scalaの定番のテスティングフレームワークである、ScalaTestや、Specs2などのは割と機能が豊富過ぎて、どこから手をつけていいのか分かりづらいところがあって(なんであんな多数の記法をサポートしているのか…)、Airframe Specは、ミニマルと、過剰の中間を狙った、という話に感心しました。Airframe SpecでScalaのテストに入門するのはありだな、と思いました。

資料のリンク先を張っておきます。

docs.google.com

speakerdeck.com

paper.dropbox.com

あと、まだ資料は公開されていませんが、LTの最後は@takezoenさんによるDependency Injectionの歴史や、各ライブラリの特性についてのご紹介でした。

おわりに

@taroleoさんの落ち着いたトーンでのしゃべり方が、イベント全体の雰囲気を形作っていて、空気感が良かったですね。落ち着いていて、そして非常に正しいエンジニアリングというか、問題をきちんと解決する方法を考え、実行し、広めていくっていう姿勢が見られて非常に感銘を受けました。

あと、@taroleoさんは、「データ指向アプリケーションデザイン」の監訳を行われた訳ですが、終わった後の会場でその辺の話になったのが良かったですね。もっと話を聞きたかった。

データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理

データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

また、ぜひ参加したい、と思わせてくれる、そんなミートアップでした。