"Reactive"
- Riverpod 的 reactive 邊界
頁面用了 Riverpod 卻對某些變化沒反應、或 reactive 行為在特定時機炸掉時使用。Riverpod 的 reactive 保證只覆蓋 provider 圖的內部——排查沿著圖的邊界走:變化在圖上嗎、在哪個容器的圖上、節點還活著嗎。
- 觀測出口的職責三分
repository 要補「資料變了」的推送能力、卻不確定 Stream 介面放 domain 算不算洩漏時使用。歸屬判準是介面用什麼語言表達、不是需求來自誰:契約歸 domain、變更偵測歸 infrastructure、框架訂閱歸組裝層。
- domain event 與狀態流
為了讓某個畫面刷新而補發事件、或監聽端掛著全事件過濾器時使用。事件記錄離散事實、狀態流發布連續觀測——判準是消費者問「發生了什麼」還是「現在是什麼」;載體借用的代價是涵蓋面靠枚舉維持。
- State Stream(狀態流)
畫面刷新靠補償、或考慮拿既有事件當刷新訊號時使用。狀態流是持續發布「資料當前值」的觀測載體——新值蓋過舊值、錯過中間值無代價,回答「現在是什麼」。
- Observation Outlet(觀測出口)
repository 只有 pull 介面、衍生視圖靠補償刷新,考慮補「資料變了」的推送能力時使用。觀測出口是 pull 介面的 push 對應——能力橫跨三層、歸屬由各層的表達語言決定。