Tarragon
搜尋
文章
標籤
Now
RSS
首頁
Tags
"Entity"
2026-07-10
Entity
判斷一個概念該建成 entity 還是 value object 時使用。entity 的同一性由身份定義——欄位全部改變、只要身份參照不變就是同一個。
2026-07-10
entity 與 value object 的判斷標準
同一個業務概念該建成 entity 還是 value object:判斷標準是「操作需不需要 identity-based 回寫」、而不是概念重要性或有沒有 id 可填。含判斷標準隨生命週期重問的交棒時機、value object 的語意封閉、枚舉分層。
2026-07-10
copyWith 是逃生口,不是設計 — 從一個測試 bug 追到 entity 稽核軌跡的洞
copyWith 對純資料載體是正確工具,對有領域方法的 entity 是繞過不變式的逃生口。從一個 3 字元 ID 觸發的例外,追出同族語意錯誤、被繞過的領域方法、以及從未被強制的註解約束。
2026-07-10
同一個品項、四個 model — value object 什麼時候該升級成 entity
同一個業務概念要不要拆成多個 model、value object 什麼時候該升級成 entity——判斷標準是操作需不需要 identity-based 回寫。以 POS 品項從點選、掛單、結算到歷史訂單的四階段模型為例,含 snapshot 與 live reference 的凍結時機。
2026-07-10
核心 entity 重寫、140+ 檔消費端不動 — Deprecated Getter Facade 的過渡設計
重寫被百餘檔引用的核心 entity 時,直接改會同時打爆全部消費端、長期分支的 merge 成本隨時間暴漲。第三條路是 facade:舊欄位保留為 deprecated getter、內部從新結構回讀,消費端零修改編譯通過、@Deprecated 讓編譯器自動列出遷移清單、再逐波清償。facade 要配退場計畫、否則就是永久相容層。