"Freezed"
- freezed
Dart 的 immutable data class 程式碼生成器。freezed 自動產生 copyWith、equals、toString、sealed union——它是 Dart 生態把 copyWith 推成預設路徑的主要推力。
- 值物件的 Dart 實作路徑
一個領域值該不該脫離裸的通用型別、以及在 Dart 用哪種載體實作時使用。手寫 immutable class、freezed 產生器、extension type 零成本包裝的成本結構不同——欄位數、要不要 runtime 身份、boilerplate 容忍度決定選哪條,以及從原始型別遷移過去怎麼鎖住行為不變。
- 有狀態假後端用真實模型序列化回應:手寫 JSON fixture 會重踩產品已解決的問題
流程測試的假後端持有 freezed 模型物件、以 toJson 序列化回應,讓服務層走完整的反序列化鏈。對照組是手寫 JSON fixture——同一批測試裡的 raw 寫法重踩了一次產品早已內建處理的分頁包裝,證明「回應形狀的知識」應該只存在一份。
- Freezed 的三層結構解剖:with、_$、以及更好懂的替代路徑
freezed `class X with _$X implements Y` 的分層結構解剖:`with` 與 `_$` 各自的角色、沒有 freezed 怎麼手做、中間投影物件 vs DTO 直接 implements 的維護取捨。
- Freezed 選型評估
Dart 專案是否引入 freezed 的選型評估:原型階段選 json_serializable + Equatable 取代 freezed 的理由與優缺點對照。