Composerの実装に見る「複雑な問題の解き方」 by きんじょうひでき

PHP Conference Japan 2021
Regular session (25 mins)
Architecture Composer

Composerの実装に見る「複雑な問題の解き方」

o0h_ きんじょうひでき o0h_
3

皆さんは、Composerをご存知ですか?利用していますか?では、その中身を読んで遊んでいるでしょうか?

Composerの世界においての中核的な概念は、「Repository」と「Package」です。
これらを組み合わせると、「何がインストール済みなのか」「composer.lockに指定されているもの、composer.jsonに指定されているものは何か」「このシステムの環境は要件を満たしているだろうか」「packagist.orgだけではなく、GitHubレポジトリやローカルファイル(path)も見に行くぞ!」という複合的な課題にそれぞれ応えることが可能になります。

システム開発は、PHPのソフトウェアも多分にもれず「どういう問題を、どのように抽象化し、組み合わせ、解決するか」という活動です。一見複雑そうに見える・・・という問題を、エレガントに解けるのも「モデリング」の力です。

本セッションでは、Comopserを例にしながら「どういう風に問題を切り取って、どういう風に抽象を定義し、それを具体的な世界に落とし込むか!!」という思考を味わってみようと思います。
世界中で利用されているソフトウェアの「シンプルさ」を感じ取ってもらえたら幸いです。