2023/01/25(水)にQiita Night~PHP~というイベントでLTしてきましたのでその報告です。
モチベーション
PHPerKaigi2023に以下のようなプロポーザルを提出していたのですが、残念ながら採択ならず、悔しいな~と思っていたところ、たまたまLTの機会を頂いたのでアーキテクチャメトリクスについてお話ししてきました。
発表内容の元ネタはこちらの書籍です。
deeeetさんがおすすめしていたので読みました。
実際とても良い本だったし、洋書ですがサクっと読めるので気になる方は是非チェックしてみてください。
あと全然関係ない超余談なのですが、LT当日に10Xさんが下記のようなブログをポストしていて、ソフトウェアアーキテクチャについても計測して改善するというアプローチは今後トレンドになっていくだろうなーと思ったのでした。
こぼれ話
LT内で扱えなかったトピックがあるので補足しておきます。
可視化と運用について
時間の関係で扱えなかった内容として、計測したメトリクスをどう運用するのかという点があります。
twitterの方でどんぴしゃな質問なども寄せられていました。
計測したメトリクスは時系列で可視化して日々のPDCAサイクルに組み込んで活用する必要がありますが、可視化についてはこれといったソリューションがあるわけではないので、個々の現場で使い慣れているデータストアを利用して頂ければ良いかと思っています。
筆者の場合は計測ツールをCIで定期実行し、BigQuery + redashという構成で可視化しています.
※ 可視化していますと言いつつ実際は計測したいメトリクスは全然とれていないのでやっていきという感じです。
紹介しきれなかったメトリクスについて
LTの最後にちょっとだけ触れた以下のアーキテクチャメトリクスですが、実は筆者が知る限りPHPで使える計測ツールはありません。
- 累積コンポーネント依存度(CCD)
- 平均コンポーネント依存度(ACD)
- 伝搬コスト(PC)
- 相対循環依存度(RC)
- 構造的負債指数(SDI)
何かよいソリューションをご存知の方がおられましたら是非お知らせください。
最後に
発表資料やトーク内容について、同僚が快くレビューをしてくれたおかげでよいLTができたと思います。
また、企画から準備、当日の運営に至るまで非常にスムーズで、ストレス無くトークすることが出来ました。
改めて関係者のみなさんに感謝をお伝えしたいです。