「少しずつLoadするEntity」を型でどう表現するか
別にEntityじゃなくてもいいけど、Entityがイメージしやすい
言語もなんでもいいけど、とりあえずTypeScriptを想定している
View依存の例を考える
とあるproductで大きなUser Entityを定義していた
イメージ的にはこんな感じ
これはかなり小さいが例である
code:1.ts
type User = {
name: string; // トップページで必要
age: number; // トップページで必要
address: string; // トップページで不要
posts: Post[]; // トップページで不要
}
しかし、
トップページでは、Userの一部の情報だけで十分
マイページでは、Userの全fieldが必要
のような仕様であった
パフォーマンス観点でも一部のデータで十分なら無駄に全部取ってくるのは良くない
この時、Userをどう定義するかという問題に直面する
code:2.ts
type User = {
name: string;
age: number;
address?: string;
posts?: Post[];
}
あるページでは不要だから、という理由でnullableにしている
そもそもEntityはViewに依存すべきでない
ではどうするか?
ちなみに、
TypeScriptでは実行時のtype checkがないので、1.tsのような定義でも下記のような不十分なデータをloadできてしまう
code:ts
const user1 = {
name: 'tanaka',
age: 20
}
これは論外mrsekut.icon