2026年6月16日 TypeScript 竟然讓我把 user ID 傳進需要 order ID 的地方 Type aliases 不會在 TypeScript 中建立不同的型別。Branded types 會,而且它們能在編譯時期就防止你搞混識別碼。 type-level-correctnesstypescriptbranded-typesnewtypes
2026年6月15日 Differential Testing 不需要形式化證明也能運作,但 Common-Mode Failure 才是真正的陷阱 Differential testing 讓你在不知道正確答案的情況下找到 bug。問題是,有相關性的錯誤看起來就像一致。以下是找出盲點的方法。 n-version-programmingdifferential-testingformal-methodstrust
2026年6月14日 測試無法證明兩個函式等價。真正有用的是這個。 N-version programming 假設你的實作結果一致。我們來看看為什麼測試不夠、SMT solver 如何真正證明等價,以及該在「夠好就好」和「形式化驗證」之間劃下哪條界線。 n-version-programmingequivalence-testingformal-methodsverification
2026年6月13日 如果我的 LLM 變體意見分歧,哪一個才對? 並行運行多個 LLM 能抓出任何單一模型都會自信上線的錯誤。以下是如何建立一個真正有效的分歧解決系統。 n-version-programmingllmdifferential-testingdisagreement-resolution
2026年6月12日 五種實作卻沒有共識:到底該怎麼選出最好的那一個 N-version programming 聽起來很簡單:跑多個實作,挑最好的答案。但在實務上,「最好」比「最常見」難定義得多。 n-version-programmingimplementation-selectiondifferential-testingai-engineering
2026年6月11日 同一個 LLM 就能寫出五種版本的函式。以下是讓它們真正不同的方法。 用 LLM 進行 N-version programming 不需要多個模型。只要改變 prompt、角色設定和推理限制,就能從單一模型中產出多樣且正確的實作。 n-version-programmingllmdiverse-implementationsai-engineering
2026年6月10日 NASA 同時執行了 27 份相同的程式。漏洞們集體投票。 N-version programming 曾宣稱獨立團隊會犯下獨立的錯誤。Knight 與 Leveson 在 1986 年的實驗證明了相反的事實,NASA 也默默退出了這條路。 n-version-programmingnasafault-tolerancesoftware-history
2026年6月9日 你有一半的 Cucumber Scenario 被跳過。這個狀態正在對你說謊。 Cucumber 的 'skipped' 狀態隱藏了三種完全不同的問題。這裡教你如何診斷是哪一種正在蠶食你的測試套件,以及如何阻止它。 deep-divescucumberbddtest-maintenance
2026年6月8日 你的 Gherkin 規格正在對你說謊 一旦你指望人類手動更新,Gherkin 規格就會立刻脫節。以下是如何將檢查流程自動化,讓 feature 檔案始終保持誠實。 deep-divesgherkinbddliving-documentation
2026年6月7日 編譯器檢查語法,測試應該檢查架構 大多數團隊把架構規則寫在 wiki 裡。這裡教你怎麼把它們變成可執行的測試,當依賴圖偏離設計時就讓 CI 失敗。 deep-divesarchitecture-testingclean-architectureci-cd