<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AI 時代的 Clean Code：30 天讓 AI 產出的程式碼可讀、可驗證、可維護 on ChiYu Code Journey</title><link>https://huangchiyu.com/ChiYu-Blog/series/ithome-2026-ai-clean-code/</link><description>Recent content in AI 時代的 Clean Code：30 天讓 AI 產出的程式碼可讀、可驗證、可維護 on ChiYu Code Journey</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><lastBuildDate>Sat, 03 Oct 2026 11:08:17 +0800</lastBuildDate><atom:link href="https://huangchiyu.com/ChiYu-Blog/series/ithome-2026-ai-clean-code/index.xml" rel="self" type="application/rss+xml"/><item><title>Day 1｜第三個參賽系列：我為什麼還想寫 AI 時代的 Clean Code？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-01/</link><pubDate>Tue, 01 Sep 2026 08:41:56 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-01/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 前兩個 iThome 鐵人賽系列，我從七月就開始準備；進入九月前，稿件也都如期完成。</description></item><item><title>Day 2｜叫 AI 清理程式碼，為什麼常只清到表面？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-02/</link><pubDate>Wed, 02 Sep 2026 08:02:33 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-02/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天，我真的把這句話交給了 Codex： 改善逾期處理，讓它符合 Clean Code</description></item><item><title>Day 3｜CLEAN 五原則：如何掌握 AI Coding 的情境、範圍、意圖、證據與行為？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-03/</link><pubDate>Thu, 03 Sep 2026 08:06:11 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-03/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天的 Agent 很有把握地寫下： 已完成逾期處理的 Clean Code 重構。 它確實改善了命名與閱</description></item><item><title>Day 4｜AI 把函式拆小就算 Clean Code 嗎？從小、命名、組織與順序檢查重構結果</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-04/</link><pubDate>Fri, 04 Sep 2026 08:03:24 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-04/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 同一段四十多行的 Controller Action，我交給同一個 AI Agent，用兩種整理範</description></item><item><title>Day 5｜AI 取的名稱格式正確，為什麼還是可能誤解程式意圖？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-05/</link><pubDate>Sat, 05 Sep 2026 12:10:25 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-05/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天，我把逾期處理中的單筆流程抽成一個私有方法： var processingResult = await ProcessOverdueItemAsync( item, cancellationToken); if (processingResult.StatusChanged) { processedCount++;</description></item><item><title>Day 6｜註解與格式都漂亮，程式碼為什麼還是難讀？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-06/</link><pubDate>Sun, 06 Sep 2026 12:36:13 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-06/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天，我們把 Work Item 逾期流程的命名規則寫進 Repository，讓 Agent 可以在</description></item><item><title>Day 7｜AI 把函式拆得越小，就越符合 Clean Code 嗎？三種拆分方式實測</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-07/</link><pubDate>Mon, 07 Sep 2026 21:35:49 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-07/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天，我們替 Work Item 逾期流程保留兩則有測試依據的警告註解，也確認 Formatter 只能整理</description></item><item><title>Day 8｜同一項需求交給下一個 AI Agent，三種函式結構會走出哪條修改路徑？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-08/</link><pubDate>Tue, 08 Sep 2026 10:19:22 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-08/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天，我從三份函式拆分結果中選了 Stepdown 版本。 ProcessOverdue 現在可以由上而下讀成四個步驟</description></item><item><title>Day 9｜AI Agent 一次重寫或分段 Commit：哪個容易還原，哪個完成後更好讀？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-09/</link><pubDate>Wed, 09 Sep 2026 11:35:49 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-09/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天，我把同一項需求交給三種函式結構，觀察全新 Agent 會如何理解資料、又會把</description></item><item><title>Day 10｜WorkItem 要公開資料還是封裝行為？用新增業務種類與新增操作比較三種模型</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-10/</link><pubDate>Thu, 10 Sep 2026 11:11:05 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-10/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天我比較了一次重寫與分段 Commit，最後保留可以逐步驗證、失敗時局</description></item><item><title>Day 11｜類別低於 100 行就只有一個責任嗎？用高優先逾期通知比較行數上限與內聚拆分</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-11/</link><pubDate>Fri, 11 Sep 2026 10:34:26 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-11/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天我先釐清 WorkItem、DTO 與 EF Entity 各自負責什麼。最後沒有建立第</description></item><item><title>Day 12｜AI 寫完再測，和先測再改有什麼差別？比較直接完成、TDD 與 TCR</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-12/</link><pubDate>Sat, 12 Sep 2026 09:09:34 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-12/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天比較類別拆分時，控制組、行數上限與內聚拆分都能把升級通知做對，也都</description></item><item><title>Day 13｜測試全綠，為什麼仍漏掉「剛好 24 小時」？用整潔測試、驗收測試與受控 Mutation 檢查答案</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-13/</link><pubDate>Sun, 13 Sep 2026 10:59:37 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-13/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天談測試紀律時，我比較了直接完成、TDD 與 TCR。那些實驗回答的是：</description></item><item><title>Day 14｜測試全綠後，怎麼判斷設計已經足夠簡單？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-14/</link><pubDate>Mon, 14 Sep 2026 14:17:27 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-14/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 前天談測試紀律，昨天接著確認整潔的測試與驗收測試能不能真的守住需求。今</description></item><item><title>Day 15｜第三條規則由不同負責人維護，SRP／OCP 要求 AI 把責任拆到哪裡？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-15/</link><pubDate>Tue, 15 Sep 2026 10:44:04 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-15/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天只有兩條通知升級規則，而且都由同一位服務等級政策負責人維護。我因此</description></item><item><title>Day 16｜兩個通知 Provider 都能編譯，為什麼還不能證明可以互相替換？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-16/</link><pubDate>Wed, 16 Sep 2026 08:16:18 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-16/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天把服務等級與派工政策分開後，今天我在共同通知介面後方，再放入一個 Queued</description></item><item><title>Day 17｜AI 把 API 拆成多個 Project，怎麼判斷哪些元件邊界值得留下？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-17/</link><pubDate>Thu, 17 Sep 2026 08:43:21 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-17/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天整理完通知的行為契約、Consumer 需要的能力與原始碼依賴方向後</description></item><item><title>Day 18｜AI 一次完成三項需求，和逐步設計相比，加入背景 Worker 時有什麼差別？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-18/</link><pubDate>Fri, 18 Sep 2026 08:49:52 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-18/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天談完元件原則後，Work Item API 已經形成三個清楚的責任區域：API 處理</description></item><item><title>Day 19｜兩個執行流程同時處理同一筆 Work Item，為什麼會重複通知？從競態條件到 Outbox 與冪等設計</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-19/</link><pubDate>Sat, 19 Sep 2026 10:49:28 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-19/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天加入背景 Worker 後，逾期流程多了第二個入口：使用者可以透過 HTTP 主動觸發，W</description></item><item><title>Day 20｜兩份程式碼都通過測試，加入重試規則後哪一種結構比較容易修改？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-20/</link><pubDate>Sun, 20 Sep 2026 10:54:57 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-20/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天，我們處理了 HTTP 與背景 Worker 同時選中同一筆 Work Item、進而重複送出通知的</description></item><item><title>Day 21｜拆成多個 Project，業務流程、執行方式、團隊與部署就真的獨立了嗎？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-21/</link><pubDate>Mon, 21 Sep 2026 07:41:55 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-21/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天，我把會獨立改變的重試規則從 Dispatcher 分離出來。但打開目前的 Solutio</description></item><item><title>Day 22｜通知 Provider 已有介面，AI 何時才需要加上 Namespace 防線或拆成 Assembly？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-22/</link><pubDate>Tue, 22 Sep 2026 08:01:45 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-22/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天，我把工作項目的生命週期與通知傳送拆成兩條 Use Case，但它們仍在同</description></item><item><title>Day 23｜Controller、EF Core 與第三方 SDK 為什麼不該決定 Use Case？用六角形架構隔離外部細節</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-23/</link><pubDate>Wed, 23 Sep 2026 07:57:37 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-23/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天整理元件邊界時，我保留了既有通知 Port，卻也發現一個不能忽略的問</description></item><item><title>Day 24｜Use Case 直接依賴 DbContext，架構測試為什麼還是綠燈？用 Dependency Rule 找出掃描盲點</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-24/</link><pubDate>Thu, 24 Sep 2026 08:42:55 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-24/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天剛把 EF Core 與通知 SDK 留在 Use Case 外圍，今天我就故意把 WorkItemsDbContext 加回 OverdueWorkItemProcessor 的建構式。Re</description></item><item><title>Day 25｜AI 寫完功能、測試全綠，為什麼還會重複通知？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-25/</link><pubDate>Fri, 25 Sep 2026 00:51:42 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-25/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天我補強了 Dependency Rule 與 Architecture Test，確保 Use Case 不會直接依賴資料庫或外部 SDK。</description></item><item><title>Day 26｜AI 說測試全綠還不夠：如何固定版本、重跑驗證，留下可查的完成證據？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-26/</link><pubDate>Sat, 26 Sep 2026 00:53:11 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-26/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 「Build 成功、測試全綠、需求完成。」 這三句，我在 AI Agent 的完成回報裡看</description></item><item><title>Day 27｜AI 一次改完再驗證，還是拆成三個小週期？比較紅燈時機、回退範圍與測試品質</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-27/</link><pubDate>Sun, 27 Sep 2026 00:54:28 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-27/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天，我把 AI Agent 的完成宣告整理成可重跑的 Evidence Packet：固定產品版本後，</description></item><item><title>Day 28｜AI 提高產碼速度後，團隊生產力真的提高了嗎？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-28/</link><pubDate>Mon, 28 Sep 2026 21:53:28 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-28/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天，我把一項通知重試需求拆成三個小週期，讓 Agent 每完成一段就取得測試回饋</description></item><item><title>Day 29｜AI 給出 48、84、156 小時：工程師如何把單點工期改成誠實估算？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-29/</link><pubDate>Tue, 29 Sep 2026 09:12:08 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-29/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天，我比較了多個 Agent 平行開發時的實作、整合、Review 與接手成本。兩</description></item><item><title>Day 30｜Clean Code 如何經過 AI Coding 實作，推導出 CLEAN 五原則？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-30/</link><pubDate>Wed, 30 Sep 2026 09:17:08 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-30/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天，我拒絕把 AI 給出的 48、84、156 小時直接當成承諾，因為那些數字</description></item><item><title>Day 31｜什麼是 AI Agent Skill？我如何把 24 份 Clean Code Policy 整理成可重用工具</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-31/</link><pubDate>Thu, 01 Oct 2026 11:05:41 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-31/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天，我重新走了一遍這三十天從 Clean Code 延伸到 CLEAN 五原則的過程，才發現前面的文</description></item><item><title>Day 32｜我把 Clean Code 做成可下載的 AI Coding Skill：保留、捨棄與重新設計了什麼？</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-32/</link><pubDate>Fri, 02 Oct 2026 11:07:18 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-32/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 昨天，我把前面累積的 24 份 Policy 分別放回適合的位置：跨 Repository 可重用的判斷進入 Sk</description></item><item><title>Day 33｜三十三天後，我從 Clean Code 與 CLEAN 得到的五個 AI Coding 結論</title><link>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-33/</link><pubDate>Sat, 03 Oct 2026 11:08:17 +0800</pubDate><guid>https://huangchiyu.com/ChiYu-Blog/posts/ai-clean-code-day-33/</guid><description>本文同步自 2026 iThome 鐵人賽原文 。完整系列可見 iThome 系列頁 。 安安～我是ChiYu～ 三十三天前，我手上其實只有三份材料：一本 753 頁、厚度大約五、六公分的《無</description></item></channel></rss>