[https://twitter.com/Fendo181/status/1126117657546125313:embed]
中央右の中野美玖ちゃんは私です
イベントの情報
[https://laravel-shibuya.connpass.com/event/127768/:embed:cite]
IRT: Interactive Round Table
- Laravelの島とPHPの島に分かれて話し合った
- 前後半2回
-
ぼくは2回ともLaravelの島
- 1回目は↓の本の共著者のおじさん(ytakeさん)の隣に座った
本にサインもらえばよかった
- 1回目は↓の本の共著者のおじさん(ytakeさん)の隣に座った
[http://www.socym.co.jp/book/1184:embed:cite]
- 以下議事録
設計のベストプラクティス
-
fat controllerだった
- controllerでDBとか叩いちゃってた
- service切って全部移しました
- fat serviceになったんだけど…これってどうなの?
- ベストプラクティス教えて
-
ytakeさんより
-
ベストプラクティスは、ない。規模やチームによるから
- 【ぼく所感】ドメインロジックが簡潔だったらDomain Modelを作るまでもなくTransaction Scriptで済んだりしますね
- SOLID原則のSが一番大事
-
serviceって何のservice?
-
DDD?
- 無理してDDDしなくていいよ
- ほかの?
- むしろOOPの習得が大事
-
-
責務分けろ
-
1メソッド1クラスとかでもいい
__invoke()
マジックメソッド
- 【ぼく所感】ADRパターンってやつですね
-
-
クラスの名前大事
-
utilとかserviceとかはやばい
- ごった煮になる
-
-
「設計」と「要件の分析力」は同じところがある
- ユースケースから分解してクラスまで落とし込む
-
コードリーディング
-
ソースコード読むのきつい
- とくに認証
- 【ぼく、他多数】idehelper使え
- phpstorm使え
-
ブレーク張るとか
- psysh
- tinker
-
【ぼく】デザパタ勉強しろ
- 認証まわりはGoFのFacadeパターンで、AuthManagerがFacadeオブジェクトで、guardに委譲してるんだな〜…とかわかると良い
-
そもそもコードを追うのをあきらめるという選択
- ツールに過ぎない
- 使い方をとりあえず学ぶ
-
ところで、laravelはISPがちゃんとしてますよね
- 【ぼく補足】Illuminate\Contracts
【ぼく質問】Facade警察について
- 結論:facadeはわるくない
-
fat facadeが駄目
- 1メソッドにつき1つとかにする
- 使い方を間違えないこと
-
どこからでも呼べるのは有能
- bladeからでも
LT
- SOLIDのLとかIとかDにまつわる話
- Laravelのコードを読む話
- バリデーション駆動開発の話
みっつめが強かった
SOLIDのLとかIとかDにまつわる話
- DIは良い設計の必要条件
Laravelのコードを読む話
-
黒魔術(とは言ってなかったけど)
- 【ぼく所感】文字通りmagic methodですからね
-
メソッド名、コメント、タイプヒント、アノテーション等を見ていい感じに手を抜こう
- コードを理解したいのか
- なんで動かないのか知りたいだけなのか
バリデーション駆動開発の話
- 不具合が起きたことではなく、不具合が起きる可能性があったことが問題
-
仕組みで改善せよ
- サーバサイドだとやりやすい
-
Bfter-Middleware層でEloquent Model -> JSONの変換をしてviewに流し込む
- sname_case ⇔ camelCase 変換とかする
-
【ぼく所感】PoEAAのFrontControllerに似た考え方
-
アレはすべてのリクエストを処理するヤツ
- laravelのBefore Middlewareに対応すると考えていいでしょう
-
-
JSON Schema使え
- composerでJSON Schemaのバリデータをrequireしていい感じに使う
-
テストコードを書かずにTDDっぽいことをできる
- JSONが仕様書になる