iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
Software Development

AI 時代的 Android Engineer:30 天打造我的 AI 開發工作流系列 第 6

Day 06 - 不是看越多 Code 越好,AI 知道什麼時候該停嗎?

  • 分享至 

  • xImage
  •  

這幾天一直在調整我把需求交給 Coding Agent 的方式。

Day 3 我發現 AI 就算有先讀 Code,也不代表它真的理解整個需求。Day 4 開始要求它先做 Impact Analysis,把無法從 Code 判斷的需求先問我,結果確實改善很多。Day 5 又再多要求它比較 Existing Behavior,結果連原本沒注意到的「少於 5 分鐘不記錄」都被找出來了。

照這個方向繼續下去,好像只要一直要求 AI「再多看一點」就好了。

但我突然想到另一個問題:

如果每一個需求都要讀一大堆 Code、分析所有相似 Feature、列出 Edge Case 再問一堆問題,那一個很小的修改是不是也會消耗很多不必要的 Token?

我想要 AI 理解 Project,但好像也不是看越多越好。

我想要的不是「分析得最完整」,而是「知道要分析到哪裡」

假設今天的需求只是修改一個 Button 的文字,我其實不需要 AI 從 Fragment 一路找到 ViewModel、Repository、Database,再分析 Project 裡所有 Button 的設計方式。

找到這個文字從哪裡來,確認修改不會影響其他共用畫面,可能就已經夠了。

但如果需求是前幾天測試的「加入正計時」,情況就完全不同。它會碰到 Pomodoro、TimeManager、Notification、專注紀錄、統計,甚至還有 Lifecycle 和不同計時模式之間的互斥。

所以我開始覺得,真正想留下來的規則不應該是:

每次都盡可能閱讀所有相關 Code。

而比較像:

先從完成這次任務需要的最小範圍開始,只有發現 Dependency、Shared Logic、Existing Pattern 或可能的 Side Effect 時,再往外擴大。

簡單的需求就停在簡單的範圍,真的會影響其他 Feature 時才繼續往外找。

這樣 AI 需要做的不只是 Read Code,而是先判斷:

我現在知道的 Context 已經足夠了嗎?

遵照既有架構,但不要為了「架構」多做一堆東西

另外一個我很在意的問題是 Over-engineering。

有時候一個需求明明只需要在現有流程多加一個判斷,最後卻多出新的 Manager、Helper、Interface 或 Wrapper。

這些東西不一定是錯的,但如果只是為了「未來可能會用到」而提前建立很多 Abstraction,最後反而會讓 Code 更難讀,也增加後續維護成本。

所以我希望 AI 優先做到的是:

Prefer the smallest change that fits the existing architecture.

先遵照 Project 現在的 Architecture、Naming 和 Pattern。如果現有結構可以合理承載需求,就不要因為這次修改另外包一層。

但「最小修改」也不是代表所有東西都塞進同一個地方。

如果某個需求已經可以合理預期之後會調整,例如計時模式可能增加、某個規則本來就是可設定的,那還是可以保留適當的調整空間。

我目前比較想要的平衡是:

對已知可能變動的地方保留彈性,不為純粹想像中的未來需求提前設計。

如果真的有不同做法,不要直接替我選

前幾天測試時還有一個感覺。

有些需求其實不只有一種實作方式,而我不希望 AI 每次看到這種情況就直接選一個,改完之後我才從 Diff 發現它做了 Architecture Decision。

如果真的存在有意義的 Trade-off,我反而希望它先給我 2~3 個適合目前 Project 的方案。

但我不只想看到:

A 比較簡單
B 比較有擴充性

我希望它可以順便告訴我,實際寫成 Code 大概會長什麼樣子。

例如一個計時模式的差異,如果目前 Project 已經使用 when

when (mode) {
    Mode.POMODORO -> handlePomodoro()
    Mode.STOPWATCH -> handleStopwatch()
}

方案 A 可能就是沿用目前結構,在既有流程加入新的處理。

如果模式真的開始變多,另一個方案可能會把不同計時行為抽開:

interface TimerBehavior {
    fun start()
    fun stop()
}

class PomodoroBehavior : TimerBehavior
class StopwatchBehavior : TimerBehavior

我不需要 AI 在分析階段就把兩套完整 Code 都寫出來,只要用最小的程式碼讓我看得出:

選 A 之後 Code 大概會往哪個方向長,選 B 又代表什麼。

然後再告訴我兩個方案的修改範圍、優缺點和未來調整成本。

這對我來說不只是讓 AI 幫忙選 Architecture,也是我理解 Project 和學習不同做法的一部分。

當然,如果今天只是改一個 String,就不要突然給我三種 Architecture。

只有真的存在實質 Trade-off 時才需要選項。

我還是希望 AI 多問一點

Day 4 和 Day 5 讓我覺得「先問」這件事很有用,所以這部分我還是想保留。

但我不希望每次需求都收到十幾二十題問卷。

目前我比較希望 AI 區分兩種問題。

第一種是:

必須確認

如果不確認就很可能直接做錯,例如 Pomodoro 正在計時時到底能不能開始 Stopwatch。

另一種是:

建議確認

不一定會阻止目前實作,但從我的描述、Existing Behavior 或未來調整來看,可能有我還沒想到的地方,例如 Stopwatch 是否也需要手動新增紀錄。

這樣 AI 還是可以幫我從 User Behavior、Existing Feature、Error、Edge Case、Lifecycle、Data、UI Feedback 等不同面向延伸,但不需要每次把所有面向硬問一遍。

真正重要的是:

不要只回答我寫出來的需求,也幫我注意我可能還沒想到的地方。

解釋 Code,也不要一開始就塞滿術語

除了寫出來的 Code,我也希望這套 Workflow 可以影響 AI 怎麼跟我說明。

如果它發現 Pomodoro 和 Stopwatch 會互相影響,比起直接告訴我:

TimeManager 是 shared singleton,兩個 Fragment observe 相同 LiveData。

我會更希望它先說:

Pomodoro 和 Stopwatch 其實共用同一個計時器,所以啟動其中一個可能會影響另一個。

再告訴我這件事在 Code 裡是由 TimeManager 負責。

也就是:

先讓人理解 Why,再告訴我 Code 怎麼做到。

就算不是 Android Engineer,至少也可以先理解「為什麼這裡有問題」,而不是一定要先看懂所有 Class 才知道 AI 在講什麼。

我的 Workflow 好像開始需要「自己調整深度」

整理到這裡,我發現前幾天一直增加的 Workflow 還缺了一個東西。

原本大概是:

Requirement
↓
Read Existing Code
↓
Impact Analysis
↓
Compare Existing Behavior
↓
Clarify
↓
Implementation
↓
Build
↓
Runtime Verification

但現在我比較希望它變成:

Requirement
↓
判斷任務範圍與風險
↓
Read Minimum Context
↓
Context 夠了嗎?
├─ Yes → 不再擴大
└─ No  → Expand Context
          ↓
        Impact Analysis
          ↓
        Compare Existing Behavior
          ↓
        Clarify Unknowns

如果過程中發現真的存在不同的結構選擇,再多一個:

Architecture Trade-off
↓
2~3 個適合目前 Project 的方案
↓
簡短 Code Example
↓
差異 / 成本 / 彈性
↓
我選擇
↓
Implementation

最後才回到 Build 和 Runtime Verification。

這樣的 Workflow 不應該讓每一個 Task 都變成大型 Code Review,而是要能根據需求自己調整深度。

簡單的事情快速完成,複雜的事情才多看、多問、多比較。

下一步不是繼續把 Prompt 寫得更長

寫到這裡,我反而覺得一直把規則加進 Prompt 好像不是最終解。

因為我的目標不是做出一段「超完整 Prompt」,每次開發前複製貼上。

我想要的是一套 Coding Agent 能遵守的工作方式:

看得夠多,但不要什麼都看。

能自己推論,但不替我決定產品需求。

遵照 Project 架構,但不要 Over-engineering。

考慮未來調整,但不要為不存在的未來提前設計。

有重要選擇時讓我看到方案和 Code 長什麼樣,再讓我決定。

多想一些我沒有想到的地方,但不要每次都變成二十題問卷。

這大概就是目前的 Coding Workflow v0.1

不過現在它還只是一堆我整理出來的規則。

下一個問題也很自然:

我能不能不要每次重新貼這些 Prompt,而是讓 Coding Agent 本來就知道這套 Workflow?

也許,是時候把它真的做成一個 Skill 了。

下一集見 :)


上一篇
Day 05 - AI 能不能從既有功能,找到我沒寫進需求的規則?
下一篇
Day 07 - 把 Workflow 寫成 Skill 之後,AI 就真的知道什麼時候該多看一點嗎?
系列文
AI 時代的 Android Engineer:30 天打造我的 AI 開發工作流8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言