Shin x Blog

PHPをメインにWebシステムを開発してます。Webシステム開発チームの技術サポートも行っています。

「独立したコアレイヤパターンの適用 - fortee 編 -」を発表しました

2019/11/30 に東京で行われた 大改修!PHPレガシーコードビフォーアフター にて、「独立したコアレイヤパターンの適用 - fortee 編 -」を発表してきました。

発表資料

オーガナイザの @tomzoh さんが開発、運用されている fortee.jp というカンファレンス運用サービスのソースコードに独立したコアレイヤパターンを適用するという内容です。

最初にコアレイヤパターンについて解説をした後、ライブコーディングで実際のコードに対してパターンを適用するデモを行いました。

100 人でやるモブプロ

コードの解説をしながら、ライブコーディングを進めていくわけですが、書きながら、あれ?PhpStorm の警告が出てままになっているなと思ったら、会場から指摘して頂いて気づくということが何度かありました。(特に @hamaco さん。感謝 m(_ _)m)

ライブコーディングは、コードを完成させることも大事ですが、それより、書いていく過程をみんなで共有するというのがポイントだと思います。より伝わるというのは、セッション後にいただいたフィードバックでも感じられたので、今後も機会があればやっていきたいです。

当日は雰囲気が良くて、みんなに見られるというより、見守られながら、壇上でコードを書くのはとても楽しかったです。ありがとうございました。

なお、引数の uuid などを ValueObject にしないのですか?という質問がありましたが、今回はコアレイヤパターンの適用が目的だったこと、また漸進的に少しづつ適用することを示したかった、そして時間が厳しかったので行いませんでした。普段なら作るので、ツッコミたくなるのはすごく分かります :)

PhpStorm

ライブコーディング中は、コードを書いて話すことに集中していたので、あまり気が付かなかったのですが、後で Twitter を見返すと、PhpStorm の操作に関するフィードバックが多かったことに驚きました。IDE を使い、さらに型を適切に付けていくことで、リズム良くコードが書けることが共有できて良かったです。

昔、Vim をメインに開発していた頃、とある勉強会で Eclipse による Java のライブコーディングを見て、それがまるで魔法のようにコードができあがっていくのに感動したことがありました。それでも、IDE を使い出したのは、さらに数年後になるわけですが、そんな自分が、IDE の使い方で驚かれるというのは不思議な感覚です。ああ、気がつけば、ある程度使えるようになってるんだなあと。

翌日に PHP カンファレンスがあったのですが、このデモを見て、サムライズムさん( JetBrains 公式パートナー)のブースに足を運んだ方もいたみたいです。PhpStorm 良いツールですね。

Vim 派の方が、PhpStorm に惹かれるといった意見もいくつかありました。自分も Vim から PhpStorm に移ったタイプなので*1、IdeaVim (JetBrains IDE 用 Vim エミュレータプラグイン)を入れて、ぜひ PhpStorm 試してみて下さい。

独立したコアレイヤパターン

当日も、翌日の PHP カンファレンスでも、コアレイヤパターンに関する質問を受けることが何度かありました。中には実践している方もいて、その中でどう活用するか、特定のケースでどのように考えるかといったお話もありました。色々な人の考えを聞くことで、より立体的にこのパターンを見ることができ、とても勉強になりました。

話題としては下記のようなものでした。

  • 共通するロジックやポートをどう共通化するか
  • どの箇所に適用するか、しないか
    • Query と Command
    • ビューに関する読み込み
  • 実際のユースケースでの構造
  • こうした構造のメリットをどう理解してもらうか

こうしたイベントでお話を聞いていると、ベースのアイデア自体は少しづつ理解して頂けることが増えた印象なのですが、いざ実践したり、実践を想定してご自身の現場への導入を考えた際にどうすれば良いのだろうという内容が出てきました。

まずは、ベースのアイデアを理解してもらおうと、これまで単純なユースケースでの実装例を公開していたのですが、もう少し実践よりのコードがあってもいいかなとも考えています。

また機会があれば、養殖物ではなく、天然物のコードに適用するデモができると良いですね。

さいごに

他の方のセッションでは、それぞれの視点で改善点を解説されていて、私が fortee のコードを見ていたということもありますが、そのどれもが面白く、聞きながら良いイベントだなあと嬉しくなりました。TL やアンケートを見ていても、参加された方も楽しんで頂けたようで、良かったです。

公開を前提とせずに、自分が書いたコードを人前でネタにされて、あれやこれや言われるのはなかなか勇気がいることだと思います。当然、書いた状況やコンテキストがあるわけで、後で冷静に考えれば、自分でもそうは書かないということがあったりもしたと思いますが、言い訳もせずに快くコードを差し出してくれた長谷川さんに感謝です。良いイベントをありがとうございました!

*1:Vim は今も使ってます