validation

3 posts

驗證光譜:為什麼 AI 寫後端最強

AI 寫程式遵循一條驗證梯度。後端在毫秒內完成驗證。網頁端需要幾分鐘。行動端需要幾小時。回饋循環的速度與確定性直接決定了 AI 寫程式在各技術層的實際效果與可靠程度。驗證速度沿著光譜遞減,決定了 AI 編碼在哪裡能自主迭代、在哪裡必須仰賴人類的判斷。

AI 模型自己寫程式這件事本身並不有趣。有趣的是它生成程式碼之後發生的事:模型能以多快的速度知道程式碼是否正確?生成與驗證之間的回饋循環有多緊密? 這個循環決定了一切。它決定了模型能否迭代自己的輸出,決定了人類能否在不手動檢查的情況下信任輸出,也決定了 AI 寫程式究竟在哪些領域行得通。…

你的驗證層比業務邏輯還龐大

手動驗證讓 codebase 膨脹,卻還是漏掉邊界情況。以下說明如何透過宣告式 schema 來 enforce runtime contracts,讓它們不干擾你的開發流程。

每次你的 API 收到請求,你就會驗證它。每次函式收到來自外部系統的參數,你就會檢查它。如果用手動方式處理,單一 endpoint 累積的驗證程式碼可能比業務邏輯還多。 這就是 runtime contracts 的隱藏代價。你需要它們,因為 type system 會說謊:透過 HTTP 傳來的…

為什麼 deep link 會讓 Vibe-coded React Native app 直接 crash(以及如何用 Zod 驗證它們)

deep link、push payload、shared URL 全都是 untrusted input。這裡會說明如何在 Expo Router boundary 就先 validate 它們,別讓壞 params 進到 screen。

Vibe-coded app 裡的 deep link bug,通常都從一些很無聊的 input 問題開始:malformed user ID、過期的 campaign URL、push payload 裡缺少的 enum 值。接著 app 把這些 input 當成可信資料,screen 就會在 happy-path…