仙台初開催の PHP カンファレンス仙台 2019 にて「明日から使えるアーキテクチャ 独立したコアレイヤパターン」を発表しました。
発表資料
- サンプルコード: https://github.com/shin1x1/phpconsen2019
- Toggeter: https://togetter.com/li/1313010
独立したコアレイヤパターンについて発表しました。当初は、昨年末に東京で行われた PHP カンファレンス 2018 で発表したものと同じ内容にしようと考えていたのですが、下記のような考えももあり、資料を大幅に変更しています。
色々なフィードバックを受けて、話して、現場で適用してと繰り返す内に、このパターンにおいて本質でないものが濾過されていって、コアの部分(レイヤの名前じゃなく)が残ってきた。そのあたりを今日話したい。
— Masashi Shinbara (@shin1x1) January 25, 2019
今回は、既に実装されている API の実装にコアレイヤパターンを適用するというデモを入れました。やっぱりデモを入れた方が、具体的にイメージしやすいですし、説明もしやすいですね。やって良かったです。
PHP カンファレンスで発表したものと合わせて見ていただければ理解が進むと思うので、こちらもどうぞ。
- サンプルコード: https://github.com/shin1x1/phpcon2018-independent-core-layer
- Togetter: https://togetter.com/li/1299453
スーパーヒーローがいなくても使えるパターン
今回の発表で伝えたかったことの一つがこれです。レイヤ分けや抽象を利用した分離は、アーキテクチャを積極的に学んでいる人やオブジェクト指向開発に詳しい人だけが使えるというものではありません。今回発表したようなレイヤ分けの手順を踏めば、適用することが可能です。
もちろん、実際の現場では考慮すべき点は出てきますが、少なくともレイヤを分けて、インターフェイスを抽出し、アダプタを実装するというベースを作るところまでは機械的にできるでしょう。
興味を持った方は、試しに、日頃から取り組んでいるコードに対してパターンを適用してみて、その感覚を体験してみて下さい。
質疑応答
発表後の質疑応答にていくつか質問を頂きました。その中で、実際にこのパターンを適用されている方からの質問がありました!DDD + 独立したコアレイヤパターンという構成で開発されているとのことです。私が関わっていないプロジェクトでも活用されているのを聞くと嬉しいですね。どこかで機会があれば、詳しくお話聞ければ嬉しいです。
空気読まず、2つ質問してみた結果、モヤモヤしていた疑問が解決した!
— 高木 翔太 (@0su43) January 26, 2019
今の大きめのプロジェクトは、独立したコアレイヤパターンwith DDDスタイルで書いていて見通しが非常に良くなっている。 https://t.co/dowEcJ62BJ
さいごに
カンファレンスでは、興味を惹かれるセッションも多く、ラフに話ができるアンカンファレンスなどもあって、楽しい時間を過ごすことができました。個人的には、カンファレンス会場と同じビルにホテルがあったおかげで、イベントの合間にも部屋に戻って荷物を置いたり、休憩できたりと快適でした :)
実行委員長の五十嵐さんが話されていた、こうしたイベントを開くことで仙台という地域を盛り上げていきたい、という想いには共感するところがあり、これをきっかけに盛り上がっていくといいなと思います。
スタッフのみなさん、楽しいイベントをありがとうございました!