- commit message 引用外部 issue 會在對方 repo 留下事件——檔案內容裡的同一串字不會 在 commit message 裡寫下對其他專案 issue 的引用之前先讀。判斷這次引用會不會在對方 repo 留下事件,以及留下之後還剩多少處置空間。
- 本機 DNS proxy 插在第一順位時,VPN 的短暫失聯會放大成全機解析故障 git / curl 回 Could not resolve host 而直連 IP 通、或同一個域名時好時壞時,用來定位是整條網路斷了、還是解析路徑上多了一個會單獨失效的本機 DNS proxy
- 註解防不了改壞——防護需求要交給會發聲的機制 想給欄位或函式寫一行 doc、或審查一則宣稱約束的註解時使用。判斷這個資訊該由測試、型別、命名還是結構承接,以及約束本身能不能先被消除。
- HMAC 簽章對接:對不上的是輸入定義、用確定性反推它落在哪一端 兩端 HMAC 算不出同一個值時要逐項核對的輸入定義,以及用簽章反推輸入、判斷問題落在哪一端的除錯手法。
- XOR 可逆編碼的適用邊界:金鑰隨程式發佈時、擋的是無動機的旁觀者 決定要不要把憑證編碼後印上 QR Code 或標籤時,用來判斷金鑰隨程式發佈的方案保護到哪裡、以及需要哪些配套才站得住。
- Domain Map 未實作 Bundle 衍生不可執行工作項目 domain-map 的 bundle 界定表混入程式碼中不存在的概念、下游消費者全部當已實作處理,產出不可執行的測試 ticket 浪費 97k tokens。產出端用 ls/grep 驗證 + 加實作狀態欄 + 消費端前置過濾三層修復。
- TestWidgetsFlutterBinding 會擋掉真實網路:真實後端測試與流程測試的檔案級隔離 flutter_test 的 binding 初始化後會把 HttpClient 換成回 400 的假件——需要真實網路的後端驗證測試不可初始化 binding,也因此不可 import 任何會初始化 binding 的 harness。靠測試檔案各自跑在獨立 isolate 的特性,兩種測試在同一個目錄共存。
- 有狀態假後端用真實模型序列化回應:手寫 JSON fixture 會重踩產品已解決的問題 流程測試的假後端持有 freezed 模型物件、以 toJson 序列化回應,讓服務層走完整的反序列化鏈。對照組是手寫 JSON fixture——同一批測試裡的 raw 寫法重踩了一次產品早已內建處理的分頁包裝,證明「回應形狀的知識」應該只存在一份。
- 自持狀態與可導出狀態:上游身份轉移時,誰要搬家、誰自動對齊 後端合併操作讓資料換了身份,前端持有的多份「以舊 id 為 key」的狀態怎麼辦?POS App 的答案分兩類:能從上游重新導出的狀態不用管、下一輪同步自動對齊;必須自行持有的狀態(差異比對基準、追蹤記錄)才需要通知搬家。分類錯誤的代價是兩個方向的 bug。
- 單調狀態機與樂觀更新的回滾契約:前台不得顯示後端沒記錄的狀態 POS App 的品項處理狀態只能遞增——現實世界的動作不可逆,狀態機跟著不可逆。樂觀更新讓 UI 先行,但後端拒絕時必須回滾:因為這個狀態是其他防護規則的資料來源,前台多顯示一格進度,防護就會在錯誤的前提上放行。
- 測試輸出的雜訊治理:預期的環境狀態不該走例外路徑 測試輸出長期印著兩行「已知無害」的錯誤——相機偵測 MissingPluginException、toast 套件的 assert fallback。已知雜訊會訓練人忽略輸出,新警報混在裡面就被過濾掉。修法是把「預期的環境狀態」變成前置判斷(channel mock 回空、無畫面早退),讓例外路徑只剩真正的例外。
- 跨邊界參照的生命週期:前端凍結的 id,死活由後端決定 POS App 的前端把後端資料的 id 凍結在本地追蹤記錄裡,後端的「合併」操作會重建資料——舊 id 全部失效,取消與追加功能無聲死亡。判準:跨邊界持有的每一個參照,都要回答「對方的哪些操作會讓它死」;穩定身份是實測出來的事實,不是推理出來的假設。
- 讓 UI 控制器在 headless 測試立起來:platform channel mock、no-op 子類與 postFrameCallback 的手工補位 流程測試要驅動真實編排,而編排住在 UI 控制器裡——能不能在無畫面的測試環境把控制器立起來,決定整個測試套件的形態。先用 spike 驗證閘門、再逐項中和平台耦合,讓控制器在 headless 環境可建構。
- StreamProvider 包 repository watch stream — broadcast、初始值、dispose 實作點 repository 要補 Stream 觀測出口、接給 Riverpod 消費時使用。訂閱模型選 broadcast 還是單訂閱、新訂閱者拿不拿得到當下狀態、controller 誰負責關——每個問題各有一個會靜默失效的預設答案。
- 手寫 dispose() 沒有呼叫者 — Notifier 的依賴與清理都歸 build() 管 Notifier 用建構子注入依賴、或手寫 dispose() 釋放 Timer 與訂閱時使用。Notifier 的建構與銷毀都由容器管理——UI 不會呼叫 dispose()、掛在方法上的清理等於沒掛;依賴在 build() 內 ref.watch、清理在 ref.onDispose 註冊。
- 加書後統計不刷新 — ref.watch 觀察的是 provider 圖、不是資料庫 頁面用了 Riverpod 卻在資料寫入後不更新、或發現自己在導航返回點補 loadData()、用 EventBus 事件觸發 reload 時使用。ref.watch 的 reactive 範圍是 provider 圖上的狀態變化;資料庫寫入不在圖上,補償刷新的出現就是這個缺口的訊號。
- 一行查詢放哪、一個測試留不留:結構改動後的兩次「還需要存在嗎」 修完一個應收金額 bug 收尾時,兩個『還需不需要』的問題浮出來。一段『過濾出已結帳品項』的查詢該掛哪一層——inline 在 widget 是洩漏、開一個 service 是儀式,判準是『查詢誰擁有的資料就掛給誰』,答案是既有的 repository。一個為了鎖住修復而寫的測試該不該留——當修復是靠刪掉舊函式、移除參數達成時,那個 bug 被結構免疫了,測試變贅述;判準是『這測試守的失敗模式,結構是否已經替它擋掉』。
- 測試全綠、功能失聯:五個 runtime 問題與組裝層的接線缺口 113 張票收尾全綠的版本,實機測試找出五個問題:路由指向佔位頁、provider 佔位 throw、按鈕空 callback,加上兩個平台語意差異。單元測試的 mock override 是正當的測試 seam、同時是遮蔽接線斷裂的來源——記下三層共振的機制、反向追溯設計文件的結果、以及修補時規格層/測試層/發版層的分層落點。
- 「978ABC」被拒的理由寫著長度不對 — 驗證的兩層分工與順序陷阱 輸入驗證有兩層職責:建構期不變式守「這個物件能不能存在」、無狀態 validator 守「使用者輸入對不對」,混在一起會讓測試建不出 fixture、錯誤訊息歸錯類。順序陷阱:先標準化再檢查等於先銷毀證據再診斷——含字母的 ISBN 被削成三位數、錯誤訊息說長度不對。
- 「該收多少錢」抽成 pure function — IO 在邊界、領域計算在核心 多個畫面都要顯示「未結帳的份數與金額」時,把計算抽成無 IO 的 pure function:資料由 caller 從 repository 拿好傳入、函式只做合併 / 扣減 / 折扣運算。含合併鍵要跟同一性定義同維度的陷阱、兩層折扣各自 clamp 的邊界、以及用註解預留擴充點讓未來規則接入不動本體。
- 1000 本書、1001 次 SQL — N+1 查詢藏在 async mapper 裡 N+1 查詢由兩個各自合理的函式組合而成:單筆轉換函式順便查關聯(mapper 做 IO)、列表方法用 Future.wait 把它乘以 N。修法是 IO 上移——一次批次 IN 查詢、記憶體組裝、轉換函式變純。mapper 簽名是 async 就是訊號;開發期資料量小、惡化是上線後隨資料成長的乘法。
- 1101 行自建測試基礎設施、重構刪掉 82.5% — 過度工程的三種形態 自建測試基礎設施前先問框架的標準做法是什麼:mock 純資料物件、helper 帶並發鎖與記憶體洩漏防護、mock 放進 lib/ 進生產依賴圖,三種形態都在重新發明 Riverpod overrideWith 一行就有的東西。精緻的設計文件不是價值證明——它可以精心規劃一個不需要存在的系統。
- 16 個失敗只有 2 個是缺口 — 大規模測試失敗先分診、再按 ROI 修 測試失敗數超過十個時逐個修是錯的順序:先全數分類根因、再按「單位工時救回的測試數」排修復順序。兩批實戰分類顯示半數失敗是斷言過時而非 bug、九個失敗共用一個 helper 修法;每類的症狀特徵字串可以建成索引讓下批失敗直接對號。
- 16 種支付渠道、4 種行為分類 — 分層 enum:保真層與行為層的粒度分工 同一個分類系統要同時服務序列化(要無損)跟 UI 行為分流(要粗粒度)時,單一 enum 選哪個粒度都錯。解法是分層:保真層無損對齊後端完整列舉、行為層收斂成行為真正分歧的少數大類、層間用 exhaustive switch 衍生——粒度轉換獲得編譯期保證。
- 88 行拆成 13 個函式、90 行決定不拆 — 函式長度是症狀、職責才是診斷 同一個團隊、同一條 5-10 行規範、兩個 90 行上下的函式,一個拆一個保留、兩個決定都對。判準在行數之外:職責混雜(初始化/迴圈/儲存/統計擠一起、巢狀五層)拆之,完整業務流程(步驟多但答案只有一個)留之。含 _ImportProgress 收斂參數列與測試耦合行為的守護。
- App 永遠卡在載入畫面 — Riverpod 的 provider 是配方、容器才持有狀態 main() 自建 ProviderContainer 對它觸發初始化、UI 跑在 runApp 的 ProviderScope 裡——兩個容器各持一份 provider 狀態、互不相通,UI 監聽的那份永遠停在初始值。Riverpod 的全域 provider 宣告只是配方、狀態屬於容器實例;跨容器操作是靜默的無效操作。
- await 回來的時候、頁面已經關了 — UnmountedRefException 與 16 個不抽象的檢查點 長 async 流程的每個 await 都是一個 gap:等待期間使用者可能離開、Notifier 被 dispose、回來再寫 state 就炸 UnmountedRefException。修法是每個 gap 後檢查 ref.mounted——而且刻意不抽成 helper:明確的檢查點讓 review 看得見哪個 gap 有守。含「評估必跑、可決定不重構」的技術債處置。
- BookImported 不能寫成 ImportBook — 事件命名的過去式是語意類別、不是風格 domain event 用過去式命名(BookImported)因為事件是已發生的事實;動詞開頭(ImportBook)是命令的形狀、訂閱者會誤讀成指令。字尾清單的自動檢查抓不住不規則動詞——偵測可機械化、判定要看語意。附一次版本終止:工作日誌宣稱的命名問題實際早已不存在、執行前驗前提省下整輪流程。
- copyWith 是逃生口,不是設計 — 從一個測試 bug 追到 entity 稽核軌跡的洞 copyWith 對純資料載體是正確工具,對有領域方法的 entity 是繞過不變式的逃生口。從一個 3 字元 ID 觸發的例外,追出同族語意錯誤、被繞過的領域方法、以及從未被強制的註解約束。
- Domain 層的 947 處硬編碼中文 — 訊息代碼跟顯示文字的分層責任 domain 層的 enum 或 getter 直接回傳 UI 顯示字串時,多語言支援與分層原則同時失守。修法是 domain 只回訊息代碼與結構化資料、UI 層用 translator extension 翻譯;遷移排序從最小模組先行驗證模式。適用於盤點「這個字串屬於領域事實還是呈現」的情境。
- Exception 型別綁 ErrorCategory 的建構不變式 — 以及合法需求撞上不變式的時刻 把「錯誤代碼必須屬於對應分類」做成建構期不變式,錯誤分類錯亂會變成測試失敗而不是靜默混亂;同一批修復出現三種形態——換對值、換精確值、以及改繼承逃離約束。第三種是分類學本身的訊號:一個 domain 的錯誤天生橫跨技術分類時,分類軸跟階層軸不正交。
- mock 要配置 55 個方法、實際只用 5 個 — 測試痛是介面設計痛的探針 service 測試的 mock 負擔正比於它依賴的介面寬度:依賴四個大介面共 55 個方法、實際呼叫 5 個,91% 的 mock 配置是純浪費、還會炸 MissingStubError。修法是介面隔離——抽出只含實際使用方法的 Port,讓 mock 縮到跟真實依賴一樣窄;為未來預留的方法用 TODO 標記啟用時機。
- SQLite 只吃三種型別 — value object 在持久化邊界的序列化契約 把 value object 直接塞給 sqflite 會炸 Invalid argument——SQLite 只接受 num / String / Uint8List,VO 必須在 repository 邊界拆成基本型別、讀回時重建。用 toString/fromString 當轉換通道是權宜:它依賴兩者對稱這條沒人強制的隱性契約,正解是語意明確的序列化方法。
- Value Object 的封裝擺盪:從全移除、完全封裝、到加回 .value getter VO 的封裝邊界在兩個極端之間來回——純字串(零封裝)跟完全封裝(禁止取原始值)各有成立的理由、也各自撞牆。穩態是給原始值一個有語意的官方出口,而不是把「取原始值」本身當違規。含 176 個編譯錯誤的工作量低估、以及「相容性介面」作為理想撤退訊號的判讀。
- 文件裡的扁平 Product、程式碼裡的雙層聚合 — 宣稱型文件的半衰期 refactor 總結文件記的是決策時刻的快照:扁平 Product(一商品一價一庫存)在真實 POS 業務下演化成 Product + ProductSpecification 雙層、價格三種下沉到規格。欄位放聚合根還是子層的判準是「兩個規格會不會不同」;文件預言的需求全中、預言的結構全錯——這正是先蓋結構會蓋錯的實證。
- 功能「完成」、測試全過、資料從未落地 — 持久化迴圈是驗收的盲區 domain 功能的測試可以全綠、而它的資料從未被序列化、資料庫沒有對應的表——單元測試都在記憶體內驗證行為、沒有一條測試走「存進去、重建、讀出來」的迴圈。驗收定義要含 roundtrip;entity 欄位與 schema 欄位的差集是靜默資料失真的清單。
- 只活在結帳流程裡的領域物件 — ephemeral model 與「Rx 外殼、immutable 內核」 流程型狀態(結帳中的輸入金額、支付方式、會員)建模成生命週期等於流程的 ephemeral 物件:結完即丟、下次全新,殘留狀態忘記重置的 bug 被結構性消滅。實作形態是 reactive 外殼包 immutable 內核——對外只開語意化變更方法、每次變更是原子的狀態替換。
- 用事件做同步查詢、等於手工重建 RPC — 跨 domain 解耦的完整帳單 domain 直接查另一個 domain 的 repository 違反依賴方向;改事件驅動的 request/response 解了耦、但帳單具體:correlation id 配對並發、timeout 機制、三條錯誤路徑——都是同步呼叫免費附贈的東西。判準是需要解耦「依賴方向」還是「時間與部署」:前者用消費端 Port 就夠、後者才值得付事件的價。
- 同一個子系統膨脹兩次:異步查詢系統的過度設計震盪 過度設計會復發、且兩輪的機制不同:設計期的膨脹來自想像的需求(別層已處理的重試、用不到的優先級佇列),迭代期的膨脹來自不刪的舊版本(三個實作並存、狀態多處追蹤)。偽需求的檢驗法是問「這個能力已經有別層在做嗎」。
- 同一個品項、四個 model — value object 什麼時候該升級成 entity 同一個業務概念要不要拆成多個 model、value object 什麼時候該升級成 entity——判準是操作需不需要 identity-based 回寫。以 POS 品項從點選、掛單、結算到歷史訂單的四階段模型為例,含 snapshot 與 live reference 的凍結時機。
- 同一個類別被判成兩個型別 — Dart import 的相對路徑與 package 路徑衝突 錯誤訊息出現 LibraryId/*1*/ 與 LibraryId/*2*/、兩行 from 一個指 lib/ 一個指 package:,就是同一個檔案被兩種 URI 匯入——Dart 的 library 身份由匯入 URI 決定、不由檔案決定,相對路徑跨進 lib/ 會製造出平行的型別宇宙。修法是全案統一 package 路徑並用 lint 規則封死。
- 兩個 domain 各自實作同一個 API service — 100% 覆蓋率的假象 同名 service 在多個 domain 各自實作時,覆蓋率數字會失去意義:每份實作各測各的、mock 各有介面,統一的行為從未被測過。重複實作是上游訊號——規劃文件沒抽出跨 domain 的共同技術需求;單檔品質審查看不到跨檔重複。
- 兩個 ImportResult 各自都合理 — 傘狀名的碰撞與做一半的重命名 同一個 domain 裡兩個類別都叫 ImportResult:一個是驗證結果、一個是操作結果,各自誕生時都合理。修法是依語意責任命名(ImportValidationResult);而重命名是一組原子操作——類別名、檔名、import、文件宣稱,做一半留下的不一致比不做更迷惑,且宣稱完成與實際完成的漂移要靠稽核抓。
- 取個原始值有四種寫法 — VO 的 toString 洩漏與 accessor 不一致 value object 家族的取值 accessor 各自為政(displayValue、toString、裸欄位)時,殺傷力會在測試層爆開:自定義 toString 讓裸字串斷言全數過期、四種取法讓修復者自己都寫錯。止血是 helper 函數庫集中取值知識、根治是家族統一 accessor 命名。
- 金額型別的三段遷移:double、Decimal、再到 Money extension type 金額欄位從 double 換 Decimal 只解決精度、沒解決「任何人都能對它做無意義運算」;用 Dart extension type 包成 Money 之後,型別系統只開放領域有意義的運算。含 implements Object 的 subtype 設計、以及大規模型別遷移前先寫 characterization test 鎖行為的做法。
- 宣告回歸原生 Exception、三個版本後階層重生 — 需求不死、只是換宿主 「砍掉過度設計、回歸原生」的重構把實作砍了、沒盤點實作回應的需求:錯誤要序列化、要使用者訊息、要分類路由,這些消費者還在,於是基類與階層在新架構裡原地長回來。砍之前分「有消費者的機能」與「沒有的」,口號式目標不可驗收、需求清單可以。
- 相同 ISBN 的兩本書、相似度只有 0.67 — 加權平均稀釋 identity 訊號 把 identity 級訊號(ISBN 相同幾乎等於同一本書)跟 fuzzy 級訊號(標題像、作者像)丟進同一個加權平均,確定性會被稀釋到閾值以下。修法是訊號分級:identity 訊號匹配就短路給高分、fuzzy 訊號才進加權池;且 identity 比對前要先正規化——ISBN-10 與 ISBN-13 是同一身分的兩種表示。
- 紅燈在量什麼 — 測試訊號的三層失真:斷言、量測、環境 「全套件降至 0」有意義的前置條件是紅燈只反映程式缺陷。三層各自會失真:絕對計時斷言量的是機器負載、compact reporter 高並行下行覆寫產生假陰性、fresh checkout 缺 gitignored 生成產物讓整包結果不可信。含 flaky 判定的取樣門檻與對照實驗定歸因的做法。
- 核心 entity 重寫、140+ 檔消費端不動 — Deprecated Getter Facade 的過渡設計 重寫被百餘檔引用的核心 entity 時,直接改會同時打爆全部消費端、長期分支的 merge 成本隨時間暴漲。第三條路是 facade:舊欄位保留為 deprecated getter、內部從新結構回讀,消費端零修改編譯通過、@Deprecated 讓編譯器自動列出遷移清單、再逐波清償。facade 要配退場計畫、否則就是永久相容層。
- 桌子跟購物車是兩個聚合 — 從「提前結帳」推導生命週期解耦 兩個業務資源該綁死成一對一、還是解耦成獨立生命週期加綁定關係——判準是有沒有業務操作需要其中一方獨立存活。以 POS 的提前結帳、純佔桌、外賣單推導桌位與購物車的聚合邊界,含組合空間大於業務空間時的非法組合封鎖。
- 產品碼自己是 mock — ViewModel 假實作通過了 15 個測試 ViewModel 用 Future.delayed 加硬編碼資料交付、狀態轉換測試全綠,因為測試耦合的是狀態機、不是業務效果。假實作被當成完成的基礎,直到 63 個測試「寫不出來」才現形——測試的可寫性是實作真實性的探針。
- 測「不變」、不測「正確」 — characterization test 當遷移安全網 大規模型別遷移前,對著舊實作寫一批鎖住現有行為的測試——包括看起來像 bug 的邊界怪癖也照鎖,遷移後全綠證明「換底沒改行為」。正確性是另一批測試的職責、混在一起紅燈就無法歸因。附測試環境的原生依賴三個斷點(FFI、plugin、late init)與替身解法。
- 會員身分、計價、支付方式必須一起換 — 耦合欄位的原子切換 多個狀態欄位被同一條業務規則綁住時,分開的 setter 會製造不一致的中間態;把切換收成單一方法、一次狀態更新內同步全部欄位,並注意衍生值重算的順序。以 POS 結帳的會員登出重算為例,含不變式收進 model 的 canCheckout 設計。
- 溢出 714px、22 個測試同時紅 — 單點修復與規範化的分界 Row 裡未受 Flexible 包裹的固定尺寸元件在窄約束下溢出;同型失敗一次爆 22 個時,正確的產出不是 22 個修復、是一份 overflow 預防規範(反模式清單 + 決策樹 + 測試檢查項)。含測試環境小尺寸是 feature、以及 stale ticket 先考古再執行的教訓。
- 遷移計畫有寫入、有消費、缺讀出 — read-path 缺口與 fixture 假綠 資料模型遷移的通路要三段齊:寫入 backfill、讀取路徑、消費端 API。缺讀出那段時,新 API 拿到的永遠是空集合——而消費端測試的 fixture 自己建物件、不走真實讀取路徑,測試全綠掩蓋 runtime 靜默失效。依賴圖只列「誰先做」不列語意前提時,dashboard 的 ready 是假訊號。
- 一個修法埋下三步後的雷:pacman 404 → -Syu 升 kernel → docker 起不來 Arch 上裝套件 404、修完之後 docker daemon 突然起不來、iptables 報 nf_tables 錯誤時回來讀 — 症狀與根因差三步的因果鏈與判讀法。
- Flutter scheduleFrame():按需 render 的最底層原語 手動觸發重繪、或釐清 setState / 動畫 / markNeedsPaint 為何最終都要向引擎要一個 frame 時,回頭理解這個按需 render 的底層原語。
- Flutter 音量控制:App 自己的音量 vs 系統音量 釐清 Flutter/Android 兩種層次的音量——播放器各自的音量(App 免 plugin 就能控制自己的聲音)與裝置系統媒體音量(全域、需 plugin),以及為什麼多數情況不該從 App 去改系統音量。
- Flutter 畫面落後邏輯狀態(log 正確、畫面不符)— 重繪訊號排查與心跳做法 Flutter 畫面落後邏輯狀態(log 正確、畫面不符),含 platform view / 外部 texture 的渲染訊號沒進 frame 排程時回來讀。
- late final 欄位不能用欄位覆蓋 — Dart 欄位的隱藏 getter/setter 機制 Dart 的 late final 欄位在底層會生成 getter 和 setter。子類用另一個欄位覆蓋時,會產生兩個獨立的儲存槽,父類程式碼讀到的是未初始化的那份,導致 LateInitializationError。Dart analyzer 要求改用 getter 覆寫。
- Widget 子類重新宣告 key — 遮蔽父類屬性與 duplicate key 風險 在 StatelessWidget 子類中重新宣告 final Key? key,會遮蔽 Widget 繼承的 key 屬性,產生兩份儲存槽。若再把同一個 key 散播給同層的多個 sibling,rebuild 時 Flutter 會拋 duplicate key 錯。
- 工具的預設行為決定使用者習慣 — 從版本錯置看工具設計的 opinion 責任 規範與工具預設不一致時工具會贏。預設路徑就是團隊的實際流程,接受自由輸入的介面設計時要負起 opinion 責任。
- 改善類工作放進新功能版本 — 版本歸屬判斷的工具化 根因分析、重構等改善工作被塞進功能版本、語意混亂。主張工具該依工作類型建議版本歸屬(semver 的 MINOR / PATCH 語意可被工具表達)。
- 並行 AI Agent 修改同一檔案的衝突模式與協調策略 並行派多個開發者或 AI agent 同一批 ticket,反覆修改同一個檔案、卡在 branch protection 與 file-modified-since-read。問題在派發策略沒考慮檔案層級的衝突。
- 版本狀態殘留:為什麼已完成的版本在看板上顯示未完成 看板顯示早已完成的版本仍為 active、誤導查看者。根因是發布工具只檢查當前版本完成度、不掃前版本的狀態殘留;工具的檢查範圍決定了系統的一致性邊界。
- 新增欄位忘記同步 reset — 跨測試狀態洩漏的系統性根因 測試結果取決於執行順序、看似功能 bug 實為上一個 test case 狀態沒清乾淨。根因是新增 private 欄位時沒同步更新 reset,隱含契約沒被顯性化。
- 10 個 Ticket、57 個綠燈、0 條追溯:從需求文件到測試的銜接檢討 單元測試全綠、卻對應不出「這些測試覆蓋了哪些 UseCase 場景」。需求到測試缺反向追溯時的流程缺口盤點與對應修法(追溯矩陣、存根策略、拆分規則)。
- 192 個測試全過、實機全壞:Mock 遮蔽真實行為的三層測試策略 unit test 全綠、實機部署後功能整片壞掉。mock-only 策略的結構盲區(text vs binary frame、缺 auth handshake、ANSI 多樣性被 FakeWebSocketChannel 遮蔽),以及分層測試各抓什麼、各遮蔽什麼。
- 每個畫面都需要出口:畫面狀態機設計與 UX 導航的系統性方法 實機測到某畫面沒有返回或退出按鈕、使用者被困住。根因是企劃沒系統列出每個畫面的狀態與可用操作;用畫面狀態矩陣確保每個狀態都有明確出口。
- Git:git stash 的 -u 參數(連未追蹤檔案一起暫存) `git stash` 後新建的檔案沒被收走、還散在工作目錄。原因是 stash 預設不收 untracked 檔案,附 -u 用法與 commit-rebase 替代做法。
- 高階函式的適用判準:流程固定、變化點單一且開放——以 Flutter 設定更新比較 typedef 改寫前後 高階函式的適用判準(流程固定、變化點單一且開放)與裸函式型別 vs typedef 的可讀性取捨並排比較。
- CI step silent hang:時間真空才是訊號、happy log 反而是 anti-signal CI step 跑很久才 timeout、最後一行卻是「下載 100% / build succeeded」這種 happy log 時回來。判讀:別急著加 timeout,先算最後一行到 cancel 的時間真空、確認是 silent hang,再用症狀詞查 upstream issue。同方向修法連 fail 2 次就是停手回資料層的訊號。
- 寫測試時 sync try-catch 接不到 BotToast 的 async 錯誤:fire-and-forget API 的接管設計 測試裡 sync try-catch 接不到錯誤,或 fire-and-forget API 從 async gap 後拋 `LateInitializationError`。用 runZonedGuarded 同時罩 sync 與 async 失敗路徑,含 fallback 訊息 signature 設計。
- flutter devices 卡住的訊號:device 數從 N 變 N-1 與 emulator 半活 `flutter devices` / `flutter run` 卡住又印 `Error -2 retrieving device properties` 時回來看。根因是 Android emulator 半活狀態,附恢復順序。
- API 認證的三層信任邊界:使用者、系統、跨系統 Provisioning API 認證的信任邊界分層(Bearer Token / Shared Secret / Provisioning):各層的洩漏後果與撤銷方式,以及混用造成的設計失效模式。
- Laravel Sanctum 的 Bearer Token 設計剖析:{PK}|{secret} 為什麼這樣設計 Laravel Sanctum `{PK}|{secret}` 格式的設計理由、hash 儲存取捨、constant-time 比對位置,以及跟 GitHub PAT、Stripe API Key 的差異。
- mTLS 實際怎麼設定與運維:CA 階層、憑證生命週期、撤銷機制 mTLS 落地的運維決策(CA 階層、憑證儲存、撤銷機制)與基礎設施整合(nginx / envoy / service mesh),以及跟 API Key / OAuth 的成本與安全取捨。
- Shared Secret 安全輪替設計:雙密過渡期、自動化與緊急流程 系統間 Shared Secret 輪替的核心機制:dual-secret rollover、自動化工具比較(AWS Secrets Manager / Vault / GCP)、緊急 rotation 流程與多 client 環境的失敗模式。
- Freezed 的三層結構解剖:with、_$、以及更好懂的替代路徑 freezed `class X with _$X implements Y` 的分層結構解剖:`with` 與 `_$` 各自的角色、沒有 freezed 怎麼手做、中間投影物件 vs DTO 直接 implements 的維護取捨。
- Dart test 的跨檔案 GetX 狀態污染:flaky 真因不是 fail 訊息上的那個 test `flutter test` 整套跑隨機 fail、單獨跑該 file 卻 100% 過。根因是 dart test runner 同 process 內 GetX state 跨 file 污染,fail 位置看 `+N -1` 累計而非訊息標示的 test。
- Dart StreamController:single-subscription vs broadcast 的設計選型問題 Dart `Bad state: Stream has already been listened to.` 的根因:預設單訂閱在第二個訂閱者出現時才爆。StreamController vs .broadcast() 修復決策、與 Rx / .obs 的比較。
- Git:把後面 commit 的部分檔案變更搬到前面的 commit 把某個 commit 裡部分檔案變更抽出來併進前面的 commit、保持其他檔案原狀的操作方式。
- Gradle Configuration 時序陷阱:afterEvaluate、evaluationDependsOn、finalized properties Gradle 報 `Cannot run Project.afterEvaluate ... already evaluated` 或 `property is final`。時序錯誤同源於 callback 註冊太晚或屬性賦值太晚,附各 API 的正確時機。
- Gradle JVM target 除錯復盤:七個節點的策略權衡 Gradle JVM target 不一致的除錯決策復盤,重點在每步的策略權衡與走過的彎路。
- Gradle 強制覆寫 plugin 的 JVM target:Kotlin 與 Java 的切入點不對稱 Kotlin / AGP 升級後 build 報 `Inconsistent JVM-target compatibility`。為何要強制覆寫 plugin 的 JVM target,以及 Kotlin 與 Java 設定切入點的不對稱。
- 為什麼 Bug 在合併後才爆:Gradle Cache 掩蓋潛伏問題的邏輯 feature branch build 正常、合併到 main 後才爆、但合併前 main 也沒錯。根因早已潛伏,Gradle cache 掩蓋、合併只是觸發條件。
- Flutter HitTestBehavior:控制點擊命中測試的三種模式 GestureDetector 點空白 padding 區沒反應、或點擊穿透/阻擋行為不符預期。HitTestBehavior 各模式(deferToChild / opaque / translucent)的命中規則與適用場景。
- Freezed 選型評估 Dart 專案是否引入 freezed 的選型評估:原型階段選 json_serializable + Equatable 取代 freezed 的理由與優缺點對照。
- SSH Key 設定筆記(macOS / Linux / Windows) macOS / Linux / Windows 的 SSH key 設定操作筆記(Ed25519 金鑰產生、ssh-agent、佈到遠端主機)。
- Git:修復後面的 commit 意外覆蓋前面 commit 的變更 用 `git commit --fixup` + `git rebase --autosquash` 改歷史 commit 後,改的內容被後面的 commit 覆蓋、變更沒生效的處理。
- Git Filter-Repo 使用說明 從 Git 歷史徹底移除檔案或資料夾(誤提交機密、清大檔)的 git filter-repo 操作筆記。
- flutter 可以使用的 togglebutton 樣式 Flutter 切換選項按鈕的元件選型。並列 ToggleButtons 等可用樣式的外觀截圖與程式碼。
#3cx
#429
#5w1h
#a11y
#ab-test
#abac
#abuse
#abuse case
#acceptance-test
#access-control
#access-key
#access-management
#access-pattern
#access-revocation
#accessibility
#accounting
#ack-deadline
#acl
#acm
#acme
#active-active
#adapter
#adb
#adhd
#admin endpoint
#adoption
#aerospace
#affordance
#agent
#agent-architecture
#agent-team
#agent派發
#aggregate
#aggregate-root
#aggregation
#ai
#ai 協作
#ai-agent
#ai-crawler
#ai-generated-code
#ai-governance
#ai-writing
#aider
#air-gapped
#ai代理人
#ai協作
#ai協作心得
#akamas
#alacritty
#alarm
#alb
#alert runbook
#alert-fatigue
#alerting
#algorithm
#alignment
#allowlist
#amd
#amplitude
#analytics
#android
#anemic model
#anonymization
#ansi
#anti-pattern
#anti-patterns
#aof
#apfs
#api
#api-contract
#api-design
#api-key
#apm
#app
#app-link
#app-sandbox
#appendrow
#apple-silicon
#application
#applications
#apps-script
#arch
#arch-linux
#architecture
#aria
#artifact
#artifact provenance
#artifacts
#ascii
#asd
#assertion
#asset-allocation
#ast
#async
#asynchronous
#asyncio
#atexit
#atlas
#atlassian
#att&ck
#att&ck evaluations
#attack-surface
#attention
#attribution
#audience-awareness
#audience-positioning
#audio
#audit
#audit log
#audit-dimension
#audit-trail
#auditable loop
#aur
#aurora
#aurora-dsql
#auth
#auth0
#authentication
#authorization
#auto-intercept
#auto-recovery
#auto-restart
#auto-scaling
#auto-shutdown
#automation
#autoscaling
#autovacuum
#avro
#aws
#aws-acm
#aws-elasticache
#aws-iam
#aws-iam-identity-center
#aws-kms
#aws-s3
#aws-secrets-manager
#aws-sqs
#aws-sso
#aws-waf
#axis-candidate
#azure
#azure-key-vault
#azure-rbac
#baas
#backend
#backfill
#backlog
#backpressure
#backup
#backward-compatible
#banner
#baseline
#bash
#basics
#batch
#batch-writing
#bdd
#bdr
#beacon
#bear cub
#bearer-token
#behavior testing
#behavioral-detection
#benchmark
#best-practices
#bigquery
#billing
#binary
#bind-address
#binding
#binlog
#biometric
#blameless
#blast radius
#blindspot
#blog
#blog-config
#blog心得
#blog維護
#blue team
#books
#boot
#bootstrap
#bot-detection
#bottleneck
#bottom-sheet
#boundary
#bounded-context
#branch-protection
#brewfile
#broker
#broot
#browser
#btop
#bubbleup
#buffer
#buffering
#build
#buildkit
#buildx
#bulkhead
#burst-traffic
#bus
#business
#business-analysis
#business-case
#business-model
#button-states
#buy-vs-build
#c-extension
#ca
#cache
#cache invalidation
#caelestia
#caffeine
#canary
#capability
#capability-upgrade
#capacity
#capacity-mode
#capacity-planning
#capital
#cardinality
#cards-skills
#career
#case-analysis
#case-driven
#case-first
#case-first-workflow
#case-studies
#case-study
#cash-flow
#cassandra
#catppuccin
#cd
#cdc
#cdn
#cert-manager
#cffi
#chain-of-thought
#change healthcare
#change-feed
#change-streams
#changelog
#channel
#chaos
#chaos engineering
#chapter-structure
#characterization-test
#chargeback
#chart
#checking
#checklist
#checkout
#checkov
#checkpoint
#chezmoi
#chrome-extension
#chronicle
#ci
#ci-cd
#ci/cd
#cidr
#cilium-tetragon
#circuit-breaker
#cisa
#citation
#citrix bleed
#citus
#cjk
#class
#classification
#claude
#claude code
#clean-architecture
#cli
#client
#client-server
#client-side
#clock-drift
#cloud
#cloud-cost
#cloud-data-policy
#cloud-iam
#cloud-llm
#cloud-logging
#cloud-managed
#cloud-monitoring
#cloud-security
#cloud-sql
#cloudflare
#cloudflare-access
#cloudflare-waf
#cloudflare-workers
#cloudhealth
#cloudhsm
#cloudtrail
#cloudwatch
#cluster
#cnapp
#cockroach-cloud
#cockroachdb
#code-generation
#code-metrics
#code-quality
#code-review
#code-smell
#codex
#coding
#coding-agent
#cognitive-bias
#cognitive-load
#cohort
#collaboration
#collaborative-filtering
#collapse
#collection-strategy
#collector
#comfyui
#command
#comment
#comments
#commercial
#commodity
#communication
#comparison
#compatibility
#completeness
#complexity
#compliance
#composition-root
#compositional-writing
#compositor
#compute
#concurrency
#conditional-write
#config rollout
#conflict-resolution
#conftest
#connection
#connection-pool
#connection-pooling
#consensus
#consistency
#consistent-hash
#consolidation
#constants
#constrained-decoding
#constraint-design
#construction
#consul
#consumer
#consumer-driven
#consumer-group
#consumer-lag
#consumption
#container
#container-bound
#container-scan
#containment
#content-based
#content-design
#context
#context-engineering
#context-management
#context-window
#continue-dev
#continuous-delivery
#contract
#contract-test
#control failure
#control handoff
#control map
#control mapping
#control pattern
#control plane
#control validation
#controller
#convention
#conversion
#conway-law
#copywith
#copywriting
#coreutils
#coroutine
#correlation id
#cors
#cosmosdb
#cost
#cost-governance
#cost-management
#cost-model
#cost-monitoring
#cost-optimization
#cost-thinking
#courses
#coverage
#cpu-offload
#cpython
#cqrs
#craft
#crashlytics
#credential
#credential stuffing
#credential-rotation
#credit-cycle
#cron
#cross-cloud
#cross-link
#cross-module
#cross-platform
#cross-vendor
#crossover
#crowdstrike-falcon-cs
#cryptography
#csf
#cspm
#css
#ctypes
#cuda
#culture
#customer-identity
#d1
#d3fend
#dairy
#dart
#dashboard
#data bag
#data classification
#data exfiltration
#data flow
#data inconsistency
#data lifecycle
#data plane
#data-architecture
#data-boundary
#data-class
#data-consistency
#data-contract
#data-control
#data-engineering
#data-integrity
#data-minimization
#data-model
#data-pipeline
#data-protection
#data-quality
#data-refresh
#data-repair
#data-residency
#data-security
#data-shape
#data-types
#data-warehouse
#database
#datadog
#datadog-security
#dax
#db-document
#db-kv
#db-oltp
#dblab
#ddd
#ddl
#ddos
#dead-code
#dead-letter-topic
#deadlock
#debezium
#debian
#debounce
#debug
#debuggability
#debugging
#decimal
#decision
#decision dialogue
#decision log
#decision-making
#decision-tree
#decoding
#decorator
#dedup
#deep-article
#deep-link
#default-design
#defender pressure
#defense
#defense vocabulary
#definition
#degradation
#degraded-mode
#delegation
#deletion evidence
#delivery
#delivery-mode-selection
#delta
#denormalization
#dependabot
#dependency
#dependency-budget
#dependency-injection
#deployment
#deployment-platform
#descriptor
#design
#design-pattern
#design-patterns
#design-system
#design-tradeoff
#desktop
#desktop-environment
#destructive-action
#detection
#detection coverage
#detection engineering
#detection-rule
#dev-environment
#devcontainer
#developer
#development-environment
#devops
#diagnosis
#diagnostic endpoint
#dialog
#difficult-conversations
#diffusion
#digest
#dip
#disaster-recovery
#discrete-gpu
#disk
#disk-space
#distributed
#distributed-counter
#distributed-lock
#distributed-sql
#distributed-systems
#distributor
#dlp
#dlq
#dns
#docker
#docker-compose
#docker-swarm
#dockerfile
#document
#document-model
#document-store
#documentation
#documentation-drift
#doget
#doget-dopost
#dom
#domain-event
#domain-logic
#domain-map
#domain-model
#domain設計
#dopost
#dotfile
#downsizing
#downtime
#dr
#dragonflydb
#drain
#draining
#drawer
#drift
#drop-in
#drop-off
#dry
#dsl
#duplicate delivery
#durability
#dynamic-credential
#dynamodb
#e2e
#earnings
#ebpf
#ecs
#edge
#edge exposure
#edge-cache
#editor
#edr
#egress
#eks
#elastic-cloud
#elastic-security
#elastic-stack
#elasticache
#electronics
#ellipsis
#embedded
#embedding
#emulator
#encapsulation
#encoding
#encryption
#endpoint
#enforcement-design
#engineering-leadership
#engineering-manager
#entity
#entra-id
#entry-point
#enum
#environment
#error
#error-action
#error-contract
#error-handling
#error-message
#error-model
#error-recovery
#error-storm
#error-tracking
#escape
#estimation
#etcd
#eval
#evals
#evaluation
#event
#event-bus
#event-carried-state-transfer
#event-classification
#event-contract
#event-delivery
#event-design
#event-driven
#event-enumeration
#event-format
#event-loop
#event-peak
#eviction
#evidence
#evidence package
#evolution
#exactly-once
#exception
#execution
#exercise design
#expectation
#explain
#exploratory-testing
#exponential-backoff
#export
#extension
#extension-type
#external-consistency
#external-device
#facade
#facilitation
#factory
#fail
#fail-safe
#failover
#failure patterns
#failure-mode
#fake
#fake-backend
#falco
#fallback
#fallback-design
#false confidence
#false-alarm
#false-negative
#false-positive
#false-trigger
#fargate
#fastly
#fastly-ngwaf
#fault-tolerance
#fde
#feature-flag
#feature-tier
#federation
#federation trust
#feedback
#field cases
#file-manager
#filter
#finance
#financial-analysis
#financial-statements
#fine-tuning
#fingerprint
#finops
#fire-and-forget
#firebase
#firestore
#fixture
#flaky
#flaky test
#flash-sale-spike
#fleet
#flow-control
#flow-test
#flush
#flutter
#font
#fontconfig
#form
#foundations
#frame-coverage
#framework
#framing
#franchise
#free-threading
#free-tier
#freezed
#freshness
#frontend
#frontend-with-playwright
#frontmatter
#ftp
#full-stack
#full-text-search
#function
#function-calling
#function-decomposition
#funnel
#fuse.js
#fuzzing
#fzf
#ga4
#game day
#gate
#gate-fallback
#gatekeeper
#gatling
#gc
#gcp
#gdpr
#gemma
#generics
#geoserver
#getter
#getx
#gguf
#ghas
#gil
#gis
#git
#gitguardian
#github
#github-actions
#github-advanced-security
#github-pages
#gitleaks
#gitui
#global
#global-database
#global-edge
#global-sql
#global-tables
#glue-layer
#gnuplot
#go
#go-advanced
#goaccess
#going-live
#goldmark
#google-cloud-iam
#google-cloud-kms
#google-dlp
#google-pubsub
#google-secret-manager
#google-security-operations
#google-sheets
#googlesql
#goreplay
#gorouter
#goroutine
#governance
#gpu
#gql
#graceful-shutdown
#gradle
#grafana
#grafana-cloud
#grafana-oncall
#grammar
#graphql
#grep
#group-replication
#grouping
#grpc
#grype
#gsi
#gsm
#gtid
#gtk
#gtm
#gui
#ha
#handover
#hands-on
#handson
#happy-path
#harbor
#hardware
#harlequin
#harness
#hashicorp
#hashicorp-vault
#hatch
#headroom
#health
#health-check
#heatwave
#helpdesk
#hexagonal-architecture
#hig
#high-availability
#high-cardinality
#high-frequency-write
#higher-order-function
#hlc
#hmac
#homebrew
#honeycomb
#hook
#hooks
#hook系統
#horizontal-scaling
#hot-partition
#hsm
#htap
#htop
#http
#https
#hugo
#human-ai-collaboration
#human-in-the-loop
#hypermedia
#hypothesis-testing
#hyprland
#hyprlock
#i18n
#iac
#iac-scan
#iam
#icon-semantics
#ide
#ide-integration
#idempotency
#identifier
#identity
#idle timeout
#ilm
#image
#ime
#immuta
#immutable
#impact scope
#implementation
#import
#imports
#improvement
#in-context-learning
#incident
#incident cases
#incident decision log
#incident evidence
#incident learning
#incident severity
#incident workflow
#incident-response
#index
#industry-analysis
#industry-comparison
#industry-transformation
#inference
#inference-optimization
#inference-server
#influence
#information architecture
#information-protection
#information-theory
#infra
#infrastructure
#ingestion
#inheritance
#innodb
#innodb-cluster
#input
#input-validation
#install
#installation
#installer
#instruction-following
#instrumentation
#integration
#integration-test
#intel
#interaction
#interaction-feedback
#interface
#interleaved-tables
#internal endpoint
#invalidation
#invariant
#inventory
#investing
#io-threads
#ios
#ios-simulator
#iredis
#isbn
#isolate
#isolation
#isp
#isr
#ivanti
#javascript
#jaxa
#jenkins
#jetstream
#jmeter
#journalctl
#js
#json
#json-schema
#jsonb
#jsonl
#judgment
#junior-engineer
#jwt
#k6
#k9s
#kafka
#kando
#kaskade
#kent beck
#kernel
#key
#keyboard
#keycloak
#keydb
#kitty
#kms
#knee-point
#knowledge
#knowledge gardening
#knowledge routing
#knowledge-card
#knowledge-cards
#knowledge-work
#kubernetes
#kv
#kv-cache
#kyverno
#l10n
#label-semantics
#labor
#lacework
#lambda
#language-design
#laravel
#late
#latency
#layered-architecture
#layout
#lazy-load
#lazygit
#lazysql
#leaf-node
#lectures
#legacy
#legacy-code
#letsencrypt
#library
#lifecycle
#linear-algebra
#linearizability
#lint
#linux
#listed-company
#litestream
#littles-law
#liveness
#livestock
#llama-cpp
#llm
#llm-as-judge
#lm-studio
#load balancer contract
#load shedding
#load-balancer
#load-balancing
#load-test
#load-testing
#loading
#local-first
#local-llm
#local-llm-services
#local-vs-cloud
#locality
#localstorage
#lock
#locking
#lockservice
#locust
#log
#log-compaction
#log-pipeline
#log-schema
#logging
#logical-decoding
#logical-replication
#logind
#logs
#loki
#long-context
#long-running
#long-term-storage
#lora
#loss
#low-latency-sustained
#lsi
#lsp
#lua
#m-trends
#ma
#mac
#macos
#macroeconomics
#maintainability
#major-upgrade
#mako
#managed
#managed-service
#management
#management plane
#mandiant
#markdown
#market-dynamics
#marketing
#mass exploitation
#matching
#material-design
#materials
#math
#math-foundations
#maturity
#maturity model
#maxwell
#mcp
#mdm
#measurement
#meetings
#memcached
#memory
#memory-budget
#mental-model
#merger-acquisition
#mermaid
#mesh-vpn
#message-queue
#messaging
#meta-commentary
#metaclass
#metadata
#metadata-lock
#metamorphic-testing
#metaprogramming
#methodology
#methodology-selection
#metric
#metrics
#mfa
#mft
#mgm
#microservice
#microsoft-purview
#middleware
#migration
#migration-playbook
#mimir
#mindset
#minisearch
#mitigation
#mitre
#mixpanel
#ml-detection
#mlx
#moat
#mobile
#mock
#modal
#model-architecture
#model-behavior
#model-evolution
#model-family
#model-selection
#model-trust
#modeling
#module
#modules
#moe
#mongodb
#mongodb-api
#monitoring
#monorepo
#mosh
#motivation
#moveit
#mq-stream
#msk
#mtls
#mtp
#mttr
#multi-account
#multi-agent
#multi-axis
#multi-cluster
#multi-dc
#multi-gpu
#multi-master
#multi-model
#multi-pass
#multi-region
#multi-round-review
#multi-source
#multi-tenant
#multicore
#multilingual
#multimedia
#multimodal
#multiplexer
#multiprocessing
#mutation-testing
#mutationobserver
#mvcc
#mysql
#n-plus-one
#naming
#nat
#nats
#navigation
#neovim
#network
#network-exposure
#network-partition
#networking
#neural-network
#neurodiversity
#new-relic
#nexus
#nftables
#nginx
#ngxtop
#nist
#nix
#no-server
#node
#noise
#non-technical
#nosql
#notes
#notification
#notifications
#ntfy
#ntp
#numerical-precision
#nvidia
#oauth
#observability
#observation-outlet
#offline
#oidc
#okta
#olap
#ollama
#oltp
#on-call
#onboarding
#onfailure
#onformsubmit
#online-ddl
#oomkill
#oop
#opa
#open-source
#open-webui
#opentelemetry
#opentofu
#operational-hybrid
#operations
#opinionated-software
#ops-loop
#optimistic-update
#optimization
#optimizer
#orchestration
#orchestrator
#ordering
#ordering-key
#organization
#organization-design
#organizational-learning
#organizations
#os
#oss
#otlp
#outbox
#over-engineering
#over-match
#overflow
#override
#owasp
#ownership
#paas
#package
#package-management
#package-manager
#packaging
#pacman
#page-shield
#pagefind
#pagination
#palo-alto
#pam
#pane
#paradigm
#paradigm-shift
#parallel
#parallel-dispatch
#parca
#parser
#partition
#partition-key
#partitioning
#path
#pathlib
#patroni
#pattern
#paved-road
#payment
#pda
#peak-average-ratio
#peak-estimation
#peak-event
#pel
#peopleware
#perceived-performance
#performance
#permission
#persistence
#personal-finance
#pg-partman
#pgbouncer
#pgcli
#pgvector
#phased-translation
#philosophy
#php
#pii
#pipeline
#piper
#pitr
#pki
#placeholder
#planetscale
#planning
#platform
#platform-channel
#platform-view
#playbook
#playwright
#plotext
#pnl
#poetry
#policy
#policy control
#policy-as-code
#pooler
#port
#pos
#post-incident review
#postgis
#postgresql
#postgresql-dialect
#postmortem
#posts
#pprof
#practice
#pragma
#pre-commit
#pre-mortem
#precision
#predictable-peak
#predictive-scaling
#presence
#pretraining
#preview
#principles
#priority
#prisma-cloud
#privacera
#privacy
#probability
#probe
#problem cards
#problem-solving
#process
#process-writing
#procurement
#prod-parity
#production
#production-validation
#productivity
#professional sources
#profiling
#progress
#projection
#prometheus
#prompt-cache
#prompt-engineering
#prompt-injection
#prompting
#promql
#property-based-testing
#property-graph
#protocol
#protocol-integration
#protocol-integration-test
#provenance
#provider
#provisioning
#proxy
#proxysql
#psychological-safety
#pub-sub
#pure-function
#push
#push-pop
#push-pull
#pyo3
#pyproject
#pyroscope
#python
#python-advanced
#qa
#qlora
#qml
#qrcode
#quality
#quality-gate
#quantization
#quarantine
#query
#query-boundary
#query-optimization
#queue
#quickshell
#quickstart
#quorum
#quorum-queue
#quota
#qwen
#rabbitmq
#race-condition
#raft
#rag
#rainfrog
#ram
#ranger
#ransomware
#rapid-software-testing
#rate-limit
#rate-limiting
#raw-log
#rba
#rdb
#rds
#rds-proxy
#reachability
#reactive
#read-after-write
#read-model
#read-preference
#read-replica
#read-write
#readability
#reader-experience
#reader-first
#readiness
#reading
#real-backend
#realtime
#reasoning
#rebalance
#recall
#recommendation
#reconciliation
#recording-rules
#recovery
#recovery-order
#red-team
#redaction
#redis
#redis-compatibility
#redis-streams
#redundancy
#redundancy-cost
#refactor
#refactoring
#reference
#reference-strategy
#referrer
#registry
#rego
#regression
#regulated
#release
#release freeze
#release gate
#release governance
#release-tracking
#reliability
#remote
#remote-access
#remote-config
#remote-work
#remote-write
#renderflex
#rendering
#replay
#replica
#replication
#replication-slot
#report
#repository
#repository-adapter
#representativeness
#reproducibility
#required-checks
#requirement-protocol
#requirements
#rerun
#reserved
#reserved-instance
#resharding
#residency
#resilience
#resiliency matrix
#resource
#resource-limit
#resource-planning
#resource-pool
#response routing
#response-time
#responsive design
#rest
#restore-drill
#retail
#retention
#retrieval
#retrofit
#retrospective
#retry
#retry-loop
#reverse-proxy
#review
#review-design
#review-process
#review-timing
#review機制
#rfm
#rhythm
#rice
#right-sizing
#ripgrep
#risk
#risk acceptance
#risk governance
#risk input
#risk routing
#riverpod
#rls
#roblox
#rocm
#roi
#rollback
#rollback rehearsal
#rollback strategy
#rollout
#root-cause
#root-cause-analysis
#rotation
#round-robin
#route53
#router
#routing
#rpc
#rpo
#rsync
#rto
#rto-rpo
#ru-sizing
#rule-codification
#rule-engine
#rum
#runbook
#runtime
#runtime config
#runtime-detection
#runzonedguarded
#rust
#s3
#saas
#safety
#safety-factor
#safety-science
#salt
#sampling
#sanctum
#sans
#sast
#saturation
#sbom
#sca
#scaffold
#scale
#scale-down
#scaling
#scenario
#scheduling
#schema
#schema-design
#schema-diff
#schema-evolution
#schema-migration
#schema-registry
#scope
#scope-management
#scp
#screen-state
#screen-state-test
#screenshot
#sdk
#sdk-design
#search
#secret
#secret-management
#secret-scanning
#secrets
#security
#security control
#security design
#security materials
#security operations
#security references
#security testing
#security-group
#security-rules
#segmentation
#select
#selected-state
#selection
#selector
#self-hosted
#self-review
#semantics
#semver
#sendbeacon
#sensitive-data
#sensor
#sentinel
#sentry
#sequence-assertion
#serializable
#serialization
#server
#serverless
#service design
#service discovery
#service registry
#service-locator
#service-mesh
#service-selection
#service-worker
#session
#session invalidation
#session-recording
#session-replay
#session-token
#setup
#severity
#shard-key
#sharded
#sharding
#shared controls
#shared mutable state
#shared-storage
#shell
#shortcode
#showback
#siem
#sigma
#signal
#signal quality
#signing
#signing key
#sigterm
#similarity
#simulation
#simulator
#single-table-design
#skill
#skills
#skip
#sla
#slab-allocator
#sliding-window
#slo
#slow-log
#sme
#snackbar
#snapshot
#snapshot-listener
#snowflake
#snyk
#soar
#sociable unit tests
#social engineering
#software-design
#solid
#source
#source-of-truth
#spa
#spanner
#spanner-graph
#spatial
#spec
#specification
#speculative-decoding
#speech-to-text
#spiffe
#spire
#split-brain
#splunk
#spof
#spot
#spot-instance
#spurious-failure
#spurious-warning
#sqflite
#sql
#sql-api
#sql-features
#sqlite
#sre
#srp
#ssh
#ssot
#stable-diffusion
#staff-engineer
#stakeholder
#stakeholder mapping
#standards
#stanford-cs230
#startup
#state
#state-externalization
#state-machine
#state-management
#state-matrix
#state-ownership
#state-stream
#state-transition
#stateful
#stateless
#static stability
#static-site
#statistics
#status page
#statusline
#stdlib
#steady state
#sticky-session
#storage
#stored-procedure
#storm-0558
#stow
#strategy
#stream
#streaming-replication
#streams
#struct
#structured-output
#stub
#styles
#subnet
#sunk-cost
#supercluster
#supervisor
#supplier
#supply-chain
#support workflow
#surge
#survival-goals
#sustained-growth
#svelte
#syft
#synapse-link
#sync
#sysadmin
#systemd
#systems-thinking
#tab-bar
#table-locality
#tabletop
#tagging
#tailscale
#tailscale-ssh
#takeover
#taxonomy
#tdd
#tdd流程
#teaching-structure
#team
#team-topologies
#tech-lead
#technical-debt
#technical-writing
#telemetry
#telemetry-pipeline
#teleport
#template-abuse
#tempo
#termgraph
#terminal
#terminology
#terraform
#test
#test-data
#test-design
#test-double
#test-oracle
#test-provenance
#test-quality
#test-seam
#test-time-compute
#testcontainers
#testing
#tflint
#tfsec
#theme
#theoretical-foundations
#theory
#threading
#threat intelligence
#threat-informed defense
#threat-model
#threat-modeling
#throughput
#ticket
#ticket整合
#ticket管理
#ticket系統
#ticket追蹤
#tier
#tiered-storage
#tig
#til
#tiling
#time-machine
#time-series
#timeout
#timescaledb
#timeseries
#timestamp
#timezone
#tls
#tmux
#toc
#toggle
#toil
#token
#token exchange
#token revocation
#token scope
#token-bucket
#tokenization
#tone
#tool-design
#tool-selection
#tool-use
#tooling
#tools
#topic-drift
#topology
#touch
#touch-target
#traceability
#tracing
#trade-off
#tradeoffs
#traffic
#traffic-management
#traffic-mirroring
#traffic-replay
#training
#transaction
#transformer
#transition
#translation
#transport
#triage
#trigger
#triggers
#tripwire
#trivy
#troubleshooting
#truetime
#ttl
#tts
#tty
#ttyd
#tui
#tuning
#tunnel
#turso
#twelve-factor
#two-tier
#type-a
#type-b
#type-c
#type-design
#type-e
#type-f
#type-hints
#type-i-error
#type-ii-error
#type-system
#typedef
#typing
#uefi
#ui
#ui-test
#ui設計
#unit-economics
#unittest
#universal-link
#unix
#update
#upgrade
#upstream
#uptime
#usability
#use-case
#user-agent
#usql
#utilization
#utm
#ux
#ux-design
#v8
#vacuum
#validation
#valkey
#valuation
#value-investing
#value-object
#valuenotifier
#vantage
#variants
#vault
#vector-database
#vector-search
#vegeta
#vendor
#vendor-article
#vendor-lock-in
#vendor-mapping
#vendor-selection
#verification
#version-management
#version-upgrade
#versioning
#vertical-integration
#vertical-saas
#vertical-scaling
#vertical-slice
#viewmodel
#visibility-timeout
#visibilitychange
#vision
#visual
#visual-contrast
#visual-regression
#vitess
#vlm
#vm
#vpc
#vpn
#vps
#vram
#vscode
#vulnerability response
#waf
#wal
#wal-archive
#watchdog
#waybar
#wayland
#web
#web-app
#webhook
#websocket
#wezterm
#whisper
#widget
#widget-test
#window-manager
#windows
#wiring-test
#wiz
#wofi
#work-log
#workflow
#workforce-transition
#workload
#workload-identity
#workload-model
#worklog
#worktree
#wrap
#wrap-decision
#write-back
#write-sharding
#writing
#writing-methodology
#writing-spec
#writing-workflow
#wrk
#x11
#xclaim
#xcode
#xor
#xz utils
#yabai
#yagni
#yaml
#yazi
#yozefu
#zellij
#zero-trust
#zettelkasten
#zombie-process
#zone
#zsh
#ztna
#不變式
#並行分析
#並行評估
#事件處理
#事件驅動
#事後檢討
#事故圍堵
#事故後檢討
#事故案例
#事故決策紀錄
#事故等級
#事故調查
#任務拆分
#任務派發
#任務管理
#佔位
#供應鏈
#供應鏈完整性
#依賴方向
#依賴注入
#值物件
#偏誤
#停機
#健康檢查
#偵測
#備份刪除
#允許清單
#元件庫
#內容分類
#內容架構
#內部端點
#全局分析
#全方位評估
#共享可變狀態
#函式設計
#分層架構
#分析
#利害關係人地圖
#前端開發
#前置知識卡片
#功能旗標
#協作
#卡片盒筆記
#原則
#原子任務
#可重現性
#可靠性
#吞吐量
#告警處置手冊
#命名規範
#品質改善
#品質標準
#品質檢查
#品質管理
#商業分析
#問題覺察
#問題評估
#單元測試
#回滾演練
#回滾策略
#國際化
#圖表
#團隊設計
#地區化
#執行期設定
#壓力反應
#外部組件
#多視角分析
#契約
#字句層
#字源
#學習筆記
#學術英文
#完成定義
#定理筆記
#家族治療
#容器
#容錯切換
#密碼儲存
#實體
#審查
#寫作
#寫作方法論
#寫作流程
#寫作規範
#專案管理
#對話協議
#導航
#就緒檢查
#工作日誌
#工作流
#工作流程
#工作準則
#工具
#工具技巧
#工具設計
#工具評估
#工具鏈
#工程實踐
#工程思維
#工程方法論
#工程筆記
#平均修復時間
#建議追蹤
#影響半徑
#影響範圍
#復原時間目標
#復原點目標
#心理安全感
#快取失效策略
#快照
#技術債務
#技術寫作
#技術文件
#技術選型
#抽象層
#拉丁文
#持續改善
#指標
#授權
#排空
#探針
#接線測試
#搜尋
#擴展型別
#效率工具
#敏捷
#敏捷開發
#教學
#教學模組
#教材結構
#教材維運
#教材設計
#整合測試
#數學
#文件
#文件撰寫
#文件系統
#文件規範
#文件設計
#文檔架構
#方法論
#會話失效
#服務發現
#服務註冊
#架構
#架構升級
#架構合規
#架構設計
#查證
#框架設計
#概念筆記
#機密管理
#權杖撤銷
#決策
#決策呈現
#決策框架
#決策樹
#決策記錄
#治理例外
#流程
#流程圖
#流程設計
#測試
#測試 seam
#測試驅動
#測試驅動開發
#溝通
#漸進式遷移
#火箭發射
#版本企劃
#物件導向設計
#狀態機
#狀態頁
#發布
#發布凍結
#發布關卡
#知識傳遞
#知識卡
#知識卡片
#知識基礎建設
#知識管理
#社會學
#神經多樣性
#程式品質
#程式碼品質
#程式碼審查
#程式碼操作
#程式碼生成
#程式碼設計
#程式設計
#稽核日誌
#穩態
#管理平面
#管理端點
#系統化開發
#系統思考
#系統管理
#系統遷移
#素材庫
#索引
#組織
#組織行為學
#組織設計
#統計
#經驗分享
#經驗收集
#聚合根
#聯邦信任
#背壓控制
#自動化
#自檢機制
#自閉
#航太
#英文單字
#處置手冊
#術語
#規則設計
#規範設計
#訊息管理
#訊號偵測
#訊號關聯
#設定發布
#設計判讀
#設計驅動
#診斷
#診斷端點
#註解規範
#評估框架
#認知
#認知心理學
#認知負擔
#語意搜尋
#語感
#證據包
#議題hub
#讀者定位
#讀者旅程
#負載削峰
#負載平衡協議
#負載平衡器
#貧血模型
#資安
#資安治理
#資安演練
#資料
#資料不一致
#資料保護
#資料分級
#資料生命週期
#資料袋
#資源限制
#資訊架構
#跨平台
#跨語言開發
#跨領域
#身分安全
#身分驗證
#軟體架構
#輸出設計
#速率限制
#逾時
#選型訪談
#重構
#重複手動工作
#重複投遞
#重評估觸發器
#錯誤處理
#錯誤預防
#鍵盤
#開發原則
#開發工具
#開發流程
#開發策略
#閒置逾時
#降級
#除錯
#階段管理
#雜項
#需求澄清
#需求管理
#需求迴避
#靜態網站
#響應式設計
#風險評估
#首頁
#驗收
#驗收條件
#驗收流程
#黏性會話