<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Yenpo 文章</title><description>用可以自行執行的小範例學讀程式碼。</description><link>https://yenpo.app/</link><language>zh-Hant</language><item><title>AI 產生的程式碼看不懂？用預測、手改和執行學會一條規則</title><link>https://yenpo.app/zh-hant/blog/learn-from-ai-generated-code/</link><guid isPermaLink="true">https://yenpo.app/zh-hant/blog/learn-from-ai-generated-code/</guid><description>Vibe coding 做出的功能能跑，卻解釋不清？用一個可執行的篩選練習，先預測三個結果，再親手改一條規則，檢查哪些行為改變、哪些保持不變。</description><pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate></item><item><title>如何驗證 AI 程式碼解釋：追出一次隱藏的資料修改</title><link>https://yenpo.app/zh-hant/blog/verify-ai-code-explanation/</link><guid isPermaLink="true">https://yenpo.app/zh-hant/blog/verify-ai-code-explanation/</guid><description>淺拷貝建立了新的外層物件，為什麼改 label 還是影響原始資料？沿呼叫端檢查引用，再執行測試，找出 AI 解釋漏掉的修改。</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Git diff 怎麼看：用一個完整例子審查 AI 程式碼改動</title><link>https://yenpo.app/zh-hant/blog/read-git-diff/</link><guid isPermaLink="true">https://yenpo.app/zh-hant/blog/read-git-diff/</guid><description>選對 Git 比較基準，讀懂 hunk 行號與增刪標記，找出修補程式裡沒顯示的未跟蹤檔案，再執行一個具體行為測試。</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate></item><item><title>從 JavaScript 錯誤堆疊和 Error.cause 追到出錯輸入</title><link>https://yenpo.app/zh-hant/blog/read-javascript-stack-trace/</link><guid isPermaLink="true">https://yenpo.app/zh-hant/blog/read-javascript-stack-trace/</guid><description>從 Import failed 外層錯誤找到解析器和壞 JSON，對照保留與丟失 cause 的結果，再用 Node.js 驗證修正後的輸入。</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate></item><item><title>讓 AI 重構之前，先用行為刻畫測試讀懂未測試程式碼</title><link>https://yenpo.app/zh-hant/blog/characterization-tests-before-ai-refactoring/</link><guid isPermaLink="true">https://yenpo.app/zh-hant/blog/characterization-tests-before-ai-refactoring/</guid><description>觀察一個小型格式化器，固定時鐘與環境輸入，把意外的現有行為儲存為測試。實跑保持行為的重構和兩處預期失敗，再單獨決定是否改變需求。</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>改一個函式會影響哪裡？用呼叫方和測試做變更影響分析</title><link>https://yenpo.app/zh-hant/blog/code-change-impact-analysis/</link><guid isPermaLink="true">https://yenpo.app/zh-hant/blog/code-change-impact-analysis/</guid><description>把返回毫秒的函式改成返回秒，為什麼重新整理判斷壞了、排序沒變、動態選中的 CSV 匯出器又除了一次？用同一組測試重現三種結果。</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>AI 把測試改綠了，原來的斷言還在嗎？</title><link>https://yenpo.app/zh-hant/blog/review-ai-generated-tests/</link><guid isPermaLink="true">https://yenpo.app/zh-hant/blog/review-ai-generated-tests/</guid><description>只剩三個名額卻成功預訂了四個，測試仍然全綠。對照實作與測試的 diff，追到未修改的呼叫方，再用同一組反例跑出被掩蓋的回歸。</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>沿著 HTTP 請求讀程式碼：從路由追到資料查詢</title><link>https://yenpo.app/zh-hant/blog/trace-http-request-through-code/</link><guid isPermaLink="true">https://yenpo.app/zh-hant/blog/trace-http-request-through-code/</guid><description>順著一個 HTTP 請求讀路由、身分認證、中介軟體和資料查詢，找出成員檢查透過卻返回其他工作區文件的原因。附無依賴 Node.js 案例與回歸測試。</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>這段程式碼為什麼存在？用 git blame 和 git log 追溯歷史</title><link>https://yenpo.app/zh-hant/blog/why-code-exists-git-history/</link><guid isPermaLink="true">https://yenpo.app/zh-hant/blog/why-code-exists-git-history/</guid><description>用 git blame、git log -S 和 -L 穿過格式改動與檔案重新命名，找到校驗邏輯的原始修復。附可重建的 Git 歷史、回歸測試和預期結果。</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>審查一段 AI 寫的 Promise 快取</title><link>https://yenpo.app/zh-hant/blog/review-ai-generated-code/</link><guid isPermaLink="true">https://yenpo.app/zh-hant/blog/review-ai-generated-code/</guid><description>AI 寫的快取修補程式看起來沒問題，常規測試也能過。這篇找出讓它出錯的呼叫順序，給出修復，再用測試把這個順序固定下來。</description><pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate></item><item><title>修復 JavaScript 非同步競態：讓介面保留最新選擇</title><link>https://yenpo.app/zh-hant/blog/trace-a-function-call/</link><guid isPermaLink="true">https://yenpo.app/zh-hant/blog/trace-a-function-call/</guid><description>防止舊的非同步響應覆蓋最新選擇。不用定時器重現 JavaScript 競態，用請求序號保護正文、錯誤提示和載入狀態，並執行測試驗證修復。</description><pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate></item><item><title>讀陌生程式碼：先找入口，再追一個設定值</title><link>https://yenpo.app/zh-hant/blog/understand-an-unfamiliar-codebase/</link><guid isPermaLink="true">https://yenpo.app/zh-hant/blog/understand-an-unfamiliar-codebase/</guid><description>從終端命令、輸出文字、測試名或設定名找到入口，再追蹤報表條數的優先順序、校驗和輸出。附可執行的小專案，區分函式測試與真實命令。</description><pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate></item></channel></rss>