便利なものが大好きなので、「Composerを使いこなしたい」「ここ数年で現れた機能も試してみたい」という願望が私にはあります。皆さんもきっとそうです。
その中でも「書き味が良くなるやつ、便利なやつ」と「パフォーマンスが上がりそうなやつ、便利なやつ」がありますよね。
前者について、例えばPHP7.4のプリロードがあります。
プリロードと初めて聞いた時に、「ではフレームワークやライブラリのコードを予めメモリに乗っけちゃおう!」と興奮した人も多いかと思います。
・・・本当に乗せていますか?
さて、そんな時に助けてくれそうなayesh/composer-preloadというパッケージがあります。
see: Packagist
これはComposer Pluginです。
READMEを見ると Composer Preload is a composer plugin aiming to provide and complement PHP opcache warming. と記述されています。
どんなアイディアでそれを実現し、どんな仕組みになっているのでしょうか?
簡単に内部に触れてみましょう。
皆さんはコードを読む時の工夫って、どんなものがありますか?
私は「脳内にスタックトレースを溜めておくの大変だぜ〜、すぐ混乱するぜ〜」となるので、その辺りは便利な道具で補いたいなあと思っています。
ここ暫くは、デジタルホワイトボードツールのMiroというサービスがお気に入りでして、ある時に「これは自分の思考を整理したらアイディアを繋ぎ止めておく時に使うツール・・・という事は!何かの複雑なコードを読む時にも、大活躍してくれるのでは!?」と閃きました。
実際に使ってみると、とても良かったのです。
本トークでは、実際にどんな風に使ったの?どう便利だったかな??を、体験談を盛り込みながらお話します。
複雑なコードや難しいソフトウェアも、これで少しは読みやすくなるかもです。
Composerはとても便利で、生活必需品ですね!!
ただし、狭い意味での composer install
を考えると、 「composer.lockを読み取って」「ファイルをDL・解凍・規定のパスに配置する」というだけです。
もし、Composerの中身(実装)を読んで、仕組みを理解して、気持ちに寄り添う事ができれば・・・
必ずしも「PHPプログラム」ではなくても良いかも知れない。PHPの世界を飛び出して、Composerを実現する!!!
そんな夢を、私は見ました。
本LTでは、「composer installのためのツールを、Goで作ってワンバイナリで動かせるようにする」をテーマに
と言った点に触れてお話をします。