ウィルゲートのアーキテクト 兼 技術広報の岡田(@okashoi)です。
梅雨で雨の日が続きますね。 雨の中を歩くと思うとちょっとだけ気分が重くなりますが、雨の日の雰囲気自体は好きだったりします。
さて以前にも記事を書いたとおり、6月29日(土)に開催された「PHP カンファレンス福岡」にて【Laravel でやってみるクリーンアーキテクチャ】というタイトルで登壇しました。
以前の記事:
なおウィルゲートでは地方カンファレンスに参加する際に、一定条件を満たせば「出張」という扱いになり交通費・参加費・宿泊費が会社から支給されます。
カンファレンスの様子
当日はスタッフ・スポンサー含め述べ 268 名の PHPer が一同に集いました。
#phpconfuk 述べ参加者数は268人! pic.twitter.com/iPeE2EhiUO
— おかしょい@アーキテクト 兼 技術広報 (@okashoi) 2019年6月29日
21 本のセッション、9 本の LT、参加型企画 1 つにくわえ、スポンサーブースや Ask the Speaker*1のコーナーもあり一日中、技術や組織の話で盛り上がることが出来ました。
カンファレンスの様子は twitter のハッシュタグからも見て取れます。
「Laravel でやってみるクリーンアーキテクチャ」概要
www.slideshare.net
15:15〜15:45「Laravel でやってみるクリーンアーキテクチャ」(中級者向け)始まりました🎙
— PHPカンファレンス福岡2019@6/29 (@phpcon_fukuoka) 2019年6月29日
スピーカー:岡田正平 / おかしょい @okashoi 様
☑️FusicホールはこちらでTweet&Check#hall_fu#phpconfuk pic.twitter.com/iKoG99I7AR
私は上記テーマで発表しました。
この発表の狙いは、聞きに来てくださった方に
- クリーンアーキテクチャのコアとなる考え方は何なのか
- それを実現するための具体的なコーディング
- それらを実践する上での Laravel との付き合いかた
を知ってもらうことです。
以下、書籍を読んだうえでの私の解釈に基づきます。
クリーンアーキテクチャはモジュール間の依存関係に着目しており、コアとなる主張は「重要なことを些細なことに依存させない」 ことです。
ここで言う「重要なこと」とはすなわちビジネスルールのことであり、変更が起こりにくいビジネスルールを、比較的容易に変更が発生しやすい DB やフレームワーク等に依存させないようにしよう、という主張です。
これにより、独立開発可能性やテスト可能性を高めたり、DB などの詳細の決定をできるだけ遅らせたりすることができます。
依存性の方向を自由に制御するためには「依存性の逆転」を利用します。
発表資料後半では具体的なコードを交えて、Laravel における実装の方法を説明しました。
発表を振り返ってみて
- 一番伝えたかった「重要なことを些細なことに依存させない」というフレーズを、きちんと伝えられた(twitter での反応からみて)
- 発表を時間内に収められた
- 発表後に Ask the Speaker に人がきてたくさん議論ができた
という点は良かったと思います。
特に Ask the Speaker では 30 分以上に渡って、クリーンアーキテクチャを含む設計全般の議論ができたのは有意義でした。
一方で反省点もあり
- ソースコードを引用するとき、ダークテーマにしていたせいで非常に見づらかった
- 上記も合わせて、後半の具体的なコードの説明は分かりにくくなってしまっていた
- 「フレームワーク非依存」を謳うクリーンアーキテクチャなのに Laravel と一緒に扱ってしまった(テーマを決める際の問題)
- 発表中せわしなく動いてた(気がする)
といった点は、次回以降の発表に活かしたいと思いました。
私自身、東京以外で開催されるカンファレンスには初参加でしたが、参加者の温度感も高く非常に楽しく有意義な時間を過ごすことができました。
参加者のみなさま、スピーカーのみなさま、スポンサー各社のみなさま、カンファレンス運営に携ったスタッフのみなさま、本当にありがとうございました!
*1:セッションの後にスピーカーと質疑応答したり議論したりできるコーナー