iT邦幫忙

2026 iThome 鐵人賽

DAY 16
0
Build on Google AI

咖啡、Wi-Fi 與 AI:30 天打造數位遊牧工作地圖系列 第 16

Day 16|把 AI 變成工程師:用 Antigravity 開始開發

  • 分享至 

  • xImage
  •  

昨天把基本版面接起來,今天回頭看程式,開始碰到畫面之外的問題。
搜尋和 Filter 看起來都能操作,但它們改變的結果,地圖有沒有跟上?我想先挑一個這樣的小問題,讓 Antigravity 讀程式、列改法,再動手修。

先讓它讀一次專案

我把 repo 打開後,第一個指令不是「幫我改」,而是:

先閱讀目前專案與 docs。
不要修改任何檔案。
告訴我:
1. 專案目前有哪些主要區塊
2. 規格與實作有哪些落差
3. 如果只修一個小問題,你會先修哪裡

我想先看它怎麼理解現在的程式,尤其要分清楚:哪些是做錯了,哪些只是昨天還沒做到。

📸 圖片 1|Antigravity 讀完 repo 後的分析
https://ithelp.ithome.com.tw/upload/images/20260917/20121296jG08rTl0dV.png

列表篩掉了,地圖卻還留著

Agent 讀完後,建議先修「地圖 Marker 和篩選結果不同步」。
它指出,目前列表已經會依搜尋和 Filter 更新,但示意地圖裡的 Marker 還是寫死的。店家被列表篩掉後,地圖上卻還看得到,也能點選。
這個問題很直接。使用者選了「營業中」,列表把打烊的店拿掉,地圖卻還能點到,看起來就像 Filter 沒作用。
至於它提到的 Bottom Sheet,Day 15 本來就沒要求完成,先記成尚未實作,不放進這次修改。
我接著給它第二段 Prompt,請它先列計畫:

這次只處理「地圖 Marker 與篩選結果不同步」。

先查看實際程式碼,不要修改檔案。
請列出:
1. 預計修改哪些檔案,每個檔案為什麼需要改。
2. Marker 如何使用與列表相同的篩選結果。
3. 選取的店家被篩除後,如何清除選取狀態。
4. 取消條件後,符合條件的 Marker 如何恢復。
5. 如何驗證搜尋、單一篩選、多條件 AND 與零結果。

沿用現有資料與狀態管理,
不要另寫一套搜尋或篩選邏輯。
被篩除的店家不應留下可點擊的 Marker。

不處理 Bottom Sheet、定位、其他資料欄位或分頁標題。
不要順便重構首頁。
如果需要修改預期以外的檔案,說明原因。
列完計畫後先停下,等我確認再實作。

這次先看它打算動哪裡,其他落差留著,不一起塞進來。

📸 圖片 2|Agent 的修改計畫
https://ithelp.ithome.com.tw/upload/images/20260917/201212962hMlsrF83y.png

它列出的計畫只動兩個檔案:MockMapView.tsx 決定 Marker 是否顯示,Home.tsx 清掉被篩除店家的選取狀態。
這兩件事都能沿用現有的篩選結果,不需要再寫一套 Filter,也不用改整個首頁。
接著我送出實作指令:

依照剛才確認的計畫實作,
只修正 Marker 與篩選結果同步,以及相關選取狀態。

保留原有版面與其他功能。
若發現必須擴大修改範圍,先說明,不要直接重構。

完成後:
- 列出實際修改的檔案與原因。
- 執行相關檢查,回報實際結果。
- 區分已驗證與尚未驗證的項目。
- 不要自動 commit 或 push,讓我先看 diff。

改了哪裡,直接看 diff

Agent 回報完成後,我先看 git diff,對一下實際修改有沒有照計畫走。
第一個改動在 MockMapView.tsx。它把傳進來的店家 ID 整理成 visibleIds,原本三個 Marker 在顯示前,都先檢查自己的 ID 還在不在結果裡。
被篩掉就不渲染,地圖上也不會留下可以誤點的標記。

📸 圖片 3-1|MockMapView 的 Marker 顯示判斷
https://ithelp.ithome.com.tw/upload/images/20260917/20121296wiPszTE1s0.png

第二個改動在 Home.tsx
原本程式只是暫時不顯示選取效果,selectedCafeId 裡還記著那家店。這次加上 useEffect,當選取的店家不在篩選結果裡,就把狀態設回 null
這樣取消篩選後,店家可以重新出現,但不會因為舊狀態還留著,就又自己變成選取中。

📸 圖片 3-2|Home 清除被篩除店家的選取狀態
https://ithelp.ithome.com.tw/upload/images/20260917/20121296BWqbiafSqQ.png

建置通過,還是要看它到底測了什麼

Agent 回報 npm run build 通過,也列出它在 390px 畫面測過的操作:

  • 搜尋 Ruins,原本三個 Marker 只留下 Ruins。
  • 選「不限時」,Ruins 被排除,選取狀態清除。
  • 選「營業中」,已打烊的未央消失。
  • 同時選「插座多」和「不限時」,只留下未央。
  • 再加上「營業中」,結果歸零,地圖不留可點的 Marker。
  • 重設篩選後,店家與 Marker 恢復。

但它的回覆裡有一行,我不能直接照著勾完成:

重設所有篩選後,列表恢復 5 間店,地圖恢復 3 個 Marker。

另外兩間還沒有示意地圖位置,所以這次只修好原本三個 Marker 的篩選連動。整份回報卻把它寫成「地圖與列表完全同步」,這就說過頭了。
我把這兩件事分開記:被篩掉的店不會再留在地圖上,這是本次修改;另外兩間店沒有 Marker,是仍未處理的落差。

回到畫面操作,再留下 commit

回到頁面,我要對的是剛才那幾個具體情況,不能只看首頁有沒有正常顯示。
尤其是「選一家店 → 把它篩掉 → 取消條件」這一組。Marker 恢復是一回事,先前的選取狀態有沒有跟著回來,是另一回事。Agent 的回報有提到 Marker 恢復,但沒有明確記錄最後這個選取狀態,還需要補確認。
切換地圖與列表、縮到手機寬度,也要一起看,避免修了同步卻影響原本的操作。

📸 圖片 4-1|修正後的 UI
https://ithelp.ithome.com.tw/upload/images/20260917/20121296ykTjZ6lNhi.png

這次修改的 commit 也另外留一張,方便對照實際改了什麼。它記錄的是這次 Marker 篩選與選取狀態的修改,不代表前面列出的落差全部解決。

📸 圖片 4-2|這次修改的 commit
https://ithelp.ithome.com.tw/upload/images/20260917/20121296Ld6VElh2lu.png

今天只改了兩個檔案,卻讓我多注意到一件事:Agent 的完成摘要,也需要對著結果看。
它能列計畫、改程式、跑檢查,但「5 間店、3 個 Marker」這種差異,還是藏在一整排通過的項目裡。
先把這次改好的部分留下來,沒處理完的也記清楚。這樣下次打開專案,才知道現在到底做到哪裡。


上一篇
Day 15|從 Stitch 到 Antigravity:把設計接進第一版網站
系列文
咖啡、Wi-Fi 與 AI:30 天打造數位遊牧工作地圖16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言