【スライドあり】「PHPカンファレンス福岡」にて Laravel とクリーンアーキテクチャについてお話ししました #phpconfuk

ウィルゲートのアーキテクト 兼 技術広報の岡田(@okashoi)です。

梅雨で雨の日が続きますね。 雨の中を歩くと思うとちょっとだけ気分が重くなりますが、雨の日の雰囲気自体は好きだったりします。

さて以前にも記事を書いたとおり、6月29日(土)に開催された「PHP カンファレンス福岡」にて【Laravel でやってみるクリーンアーキテクチャ】というタイトルで登壇しました。

以前の記事:

tech.willgate.co.jp

なおウィルゲートでは地方カンファレンスに参加する際に、一定条件を満たせば「出張」という扱いになり交通費・参加費・宿泊費が会社から支給されます。

カンファレンスの様子

f:id:okashoi:20190704114451j:plain
カンファレンス会場の福岡ファッションビル

当日はスタッフ・スポンサー含め述べ 268 名の PHPer が一同に集いました。

21 本のセッション、9 本の LT、参加型企画 1 つにくわえ、スポンサーブースや Ask the Speaker*1のコーナーもあり一日中、技術や組織の話で盛り上がることが出来ました。

カンファレンスの様子は twitterハッシュタグからも見て取れます。

twitter.com

「Laravel でやってみるクリーンアーキテクチャ」概要

www.slideshare.net

私は上記テーマで発表しました。

この発表の狙いは、聞きに来てくださった方に

  • クリーンアーキテクチャのコアとなる考え方は何なのか
  • それを実現するための具体的なコーディング
  • それらを実践する上での Laravel との付き合いかた

を知ってもらうことです。

以下、書籍を読んだうえでの私の解釈に基づきます。

クリーンアーキテクチャはモジュール間の依存関係に着目しており、コアとなる主張は「重要なことを些細なことに依存させない」 ことです。

ここで言う「重要なこと」とはすなわちビジネスルールのことであり、変更が起こりにくいビジネスルールを、比較的容易に変更が発生しやすい DB やフレームワーク等に依存させないようにしよう、という主張です。

変更を加えると、それに依存しているものに影響が出る。依存の方向性を「変更されにくいもの」に向けることで、影響を最小限に留められる。

これにより、独立開発可能性やテスト可能性を高めたり、DB などの詳細の決定をできるだけ遅らせたりすることができます。

依存性の方向を自由に制御するためには「依存性の逆転」を利用します。

f:id:okashoi:20190704212309p:plain

f:id:okashoi:20190704212407p:plain

発表資料後半では具体的なコードを交えて、Laravel における実装の方法を説明しました。

発表を振り返ってみて

  • 一番伝えたかった「重要なことを些細なことに依存させない」というフレーズを、きちんと伝えられた(twitter での反応からみて)
  • 発表を時間内に収められた
  • 発表後に Ask the Speaker に人がきてたくさん議論ができた

という点は良かったと思います。

特に Ask the Speaker では 30 分以上に渡って、クリーンアーキテクチャを含む設計全般の議論ができたのは有意義でした。

一方で反省点もあり

  • ソースコードを引用するとき、ダークテーマにしていたせいで非常に見づらかった
  • 上記も合わせて、後半の具体的なコードの説明は分かりにくくなってしまっていた
  • フレームワーク非依存」を謳うクリーンアーキテクチャなのに Laravel と一緒に扱ってしまった(テーマを決める際の問題)
  • 発表中せわしなく動いてた(気がする)

といった点は、次回以降の発表に活かしたいと思いました。

私自身、東京以外で開催されるカンファレンスには初参加でしたが、参加者の温度感も高く非常に楽しく有意義な時間を過ごすことができました。

参加者のみなさま、スピーカーのみなさま、スポンサー各社のみなさま、カンファレンス運営に携ったスタッフのみなさま、本当にありがとうございました!

*1:セッションの後にスピーカーと質疑応答したり議論したりできるコーナー