when-to-wrap-primitives
Installation
SKILL.md
プリミティブ型ラップ判断ガイド
プリミティブ型をラップすべきか否かは、コスト対効果で判断する。盲目的にラップするのも、 一切ラップしないのも、どちらも設計の失敗である。
前提: Value Objectの定義は1つではない
「Value Object」という用語は文脈によって意味が異なる。議論やレビューで混乱が生じる主因である。
| 定義 | 出典 | スコープ | 核心 |
|---|---|---|---|
| 一般的定義 | Wikipedia等 | 最も広い | 同等性がIDではなく値に基づくオブジェクト |
| PofEAA定義 | Martin Fowler | 実装パターン | IDに基づかず値で等価判定される小型オブジェクト。別名参照問題を避けるため不変が推奨 |
| DDD定義 | Eric Evans | ドメインモデリング | PofEAA版の特性をすべて備えた上で、ドメインの概念を計測・定量化・説明し、不変条件と副作用のない振る舞いを持つドメインオブジェクト |
DDD版はPofEAA版のextends
DDD版VOとPofEAA版VOは独立した概念ではなく、特化(specialization)の関係にある。
Related skills