Laravel JP Conference 2020
採択
レギュラーセッション(30分)

やんちゃなEloquent Modelの育て方

n_1215 中榮健二 n_1215
1

フルスタックWebフレームワークLaravelの最大の特徴はEloquent。
Eloquentを制するものがLaravelを制するといっても過言ではありません。

Laravel利用者同士であれば、Eloquent Modelをどう使うか、太りがちなロジックをどう整理するかなどなど、Eloquentの話だけで一日中語り尽くせることでしょう。

最近のカンファレンスのLaravel系のトークでは、Laravel利用者が成熟してきたせいか、アーキテクチャや設計論が目立ち始め、Eloquent Model自体への評価は下降気味だと感じています。
曰く、Eloquentはやんちゃが過ぎるのでリポジトリに閉じ込めるべきである、ORMの"Model"クラスとは別のPOPOのクラスをドメインモデルとして使うべきである云々。

本トークでお伝えしたいのは、我々が普段書いているEloquent Modelのコードと、カンファレンスで話される理想的な設計の話は地続きであり、決して雲の上の出来事ではないということ。コードの良し悪しはとあるアーキテクチャやパターンを取り入れるかどうかのゼロイチで決まるものではなく、その間にある無数のトレードオフに目を向けることが大事だということ。

目の前にある泥臭いLaravelアプリケーションのコードと付き合いながら、設計について考えていきましょう。

● お話しすること

  • ActiveRecordとDataMapper
  • ドメインモデルと永続化モデル
  • リポジトリパターン
  • ドメインモデルとしてのEloquent Model
  • Eloquent Modelを分割統治するためのパターン集

● お話ししないこと

  • クリーンアーキテクチャ
  • ドメイン駆動設計

P.S. Laravel中〜上級者の皆様へ

リポジトリパターンやクリーンアーキテクチャは本当に必要ですか?
それらが利用される本当の目的を理解して利用していますか?
POPOが正義でしょうか?
Eloquentは力をセーブさせざるを得ない悪い子でしょうか?

本トークを通じて、Laravelを使い始めた頃に感じていたEloquentの万能感を、ぜひ思い出していただければと思います。