この記事は「ひとりでカンファレンスふりかえりo0h Advent Calendar 2021」のday-12です。

ひとりでカンファレンスふりかえりo0h Advent Calendar 2021 - Adventar

今日振り返るのは、「vimeo/php-mysql-engineって何?どう動くの?読んでみました!」です。 PHP Conference Japan 2021のCfPに応募しました。Regular session (25 mins)の枠になります。

vimeo/php-mysql-engineって何?どう動くの?読んでみました!

概要

PHPerKaigi2021のLTで、vimeo/php-mysql-engineの紹介をしました。

https://github.com/vimeo/php-mysql-engine

ユースケースを中心に「どう使うものなのか」というのをチラ見せ程度に扱ったのですが、技術的にも「どうなてるんだ?」と興味深く感じます。

そこで、より「ちょっとした飛び道具にも思えるような本ソフトは、一体どういう風に実装されて・どうやって課題の解決を実現しているのだろう?」を紐解いてみよう、というものです。

ビジネスやソフトウェア開発プロセスの課題にどうアプローチするか?というのが先のLTだとすれば、こちらは実装についてのhowを理解してみたいぞ〜〜!に関心を寄せている、とでも言いましょうか。

少なくとも「クエリを解釈する部分」「クエリを実行する部分」「レポジトリ部分」の3レイヤーが抽象化されているはずで、実際の「RDB」「MySQL」というのをPHPのコードに置き換える時にどんな「メタファ」が適用されているのか・・・?

ホビー的に「ユニークなソフトウェアの中身を読んでみたら、きっと面白いよね!」という観点もありつつ、実際の現場で役立つような・・ソフトウェアデザインの引き出しみたいなものも、一緒に扱えたら良いなと考えていました。

動機

このプロジェクトの存在を知った時に、「すごい独創的な事をしている(気がする)な」という衝撃を受けたものです。それゆえに、PHPerKaigiでも「やってみたい、シェアしたい!」と思ってプロポーザルを投げました。

しかし、自分はその中身までちゃんと理解していないなぁ、読んでみたいなぁ・・・という気持ちがが残ったままです。きっとコードリーディングで得るものもあるでしょう。 実際、Composerのコードリーディングを行って得たものを、過去2回のphpconで発表し、(その準備期間の勉強や資料作成=形にする作業も含めて)面白かったし、良い経験になったよなぁという感覚があります。

であれば!また「読んでみました!」系のトピックとして、1つ出してみるか・・!と思い立った次第です。

ついでにいうと、中身をガッツリ読んだら色々とPRも出しちゃうぞ〜〜〜とも目論んだりしていました。