PHPは自分のメイン言語なので基本的にはわかる話が大部分でした。 しかし、だからこその復習もあり、新しい発見もあり、読んでよかったです。
その中から刺さった記事を2つ書いておきます。
6.4 MBCだけに留まらないための設計の話
ADR(Action-Domain-Reponder)
Action-Domain の部分は同じようにLaravelで近い構成での書き方はをしたことがありました。
MVCからADRに変更する歳の具体的な変更点がわかりやすいのが良かったです。
自動生成された Controller のままCRUD処理を書き始めてしまうと、どうしてもFat-Controllerになりがちです。
Controllerの 1 public メソッドを Action という形で 1クラスに分割していく方式は私も気に入っています。
Responderというのは初めて出会って、なるほどなと思いました。
レスポンスを生成するところまでをビジネスロジックとして記述することが多かったのですが、それはResponderの役割だったのかもしれないと思いました。
データのCRUD処理をしてレスポンスのもととなるデータを取得するところまでをドメイン層に書き、レスポンス(大半がviewではなくAPIなので配列をゴニョゴニョするのみ)の加工はResponder と役割を分けると良さそうですね。
5.3 AWS CodePipeline を使用したCI/CD 環境の導入
こちらはPHPではなく、PHPをデプロイするAWSの環境構築について触れられていました。
AWSでCodePipelineやCodeBuildはすでにいくつかの案件で使っています。
CDKというものを使うと、TypeScriptを使ってエンジニアにもわかりやすく環境構築内容を記述できる
という概要まではキャッチしていたものの、実際に手を動かして作ってみたことがありませんでした。
本書で紹介されているサンプルコードのtypoを見つけて報告してしまうくらいにはしっかりコードまで読みました。
あ!typoですね…😨
— わたなべ (@kaz_29) 2020年2月12日
動きには関係ないけど後ほど直しておきます!
近々、AWSを使って作りたいものもあるので、CDKを使った環境構築は早速試してみます。
さいごに
発売直後に購入していたものの、なかなか読み始められず2月に入ってからようやく読むことができました。 PHPerKaigiの開催前に読んで、著者の方々に「読みました!」って言えたら良かったのに、というのが今回の反省店です。 残念ながら、PHPerKaigiに参加した復路の時間で大半を読み終えました。
移動時間を利用して #みんなのPHP を読み終えた。アウトプットは家に帰ってから書く。PHPerKaigi 参加前に読んでおけばよかったと思ったのは言うまでもなく。。
— マキ (@makies) 2020年2月12日
そういうことを繰り返さないためにも、できる限り積ん読を増やし過ぎないように、かつ速やかにアウトプットすることを続けていこうと思います。
最後の最後に懺悔
本当のところ、いくつかの記事は今の自分には難しすぎて読めなかったところももありました。
いつの日か、自分がパワーアップして理解できるようになったときに、もう一度読み返したいです。