1.2K Views
June 25, 23
スライド概要
Laravel Collectionとの付き合い方についての付き合い方の一案です
PHP/Laravelをメインにお仕事しています。アプリケーションの設計とか好きです。
Laravel Collectionとの付き合い方 オレオレLaravelで表現豊かなドメインクラスをめざそう! tyamahori(ちゃまほり) @【非公式】PHPカンファレンス福岡・前日Meetup 夜の部 LT 2023.06.23
お前だれよ? tyamahori(ちゃまほり)っていいます • 株式会社LITALICO 所属 • 障害福祉サービスで、国にお金を請求する際の計算ロジックを作ってます • 好きな言葉 Laravel / PhpStorm / DDD / Clean Architecture / Orbstack / Docker / 環境 構築 • 千葉県 生まれ・育ち • 1989年9月24日生まれ • https://twitter.com/tyamahori
Collectionをただ作るのはやめよう ちょっと便利な配列の認識やめよう集合に対するルールがあるはず! • Collection型だけど、、、それ以上わから ない • Collectionの中身はどうなっているの。。
Collectionの拡張を考える 集合に対するルールがあるはず! • Collectionを継承(諸説あり)して俺たちの型 を定義する • PHPのファーストクラスコレクションを ちゃんと作れば良いのでは?それはそ う。。 • Laravelコレクションの禁止もあり。 • でもLaravelコレクション便利じゃん。。
Collection継承は慎重に 使い所はむずかしい。。 • Collectionが提供しているメソッドのオー バーライドどうする問題 • テストは必須。Collectionでの変更があった とき死ぬ。 • Collection、拡張したCollectionどちらを返 すのかはしっかり判断する
Collectionの罠 使いたいメソッドの実装はみておきたい • ちゃまほりは最近、addメソッドの挙動に 罠を感じてる • 要素が追加されるだけ • 集合のルールが無視されてしまう状態
役割をわけて、見通しUP 意図が伝わって、認知不可も改善する • クライアントコードはクラスを使うだけ • 生成に関する知識は持たなくて良い • コレクションに処理をまとめて見通しをよ くしよう
まとめ よりよいCollectionライフにするために • コレクション、集合クラスを使うときにどういうルールがあるかを整理しよう • 順番、最大数、最小数、空を許容するのか • コンストラクタで定義しよう • 使うメソッドはどういう挙動ですか? • たとえばaddメソッド。これは本当に要素を追加するだけ。場合によっては 意図しない挙動になる
みなさまのコレクションに対する付き合い方しりたいです ありがとうございました