iT邦幫忙

2025 iThome 鐵人賽

DAY 12
0
生成式 AI

AI協作開發實戰:從需求到原型的挑戦系列 第 12

客戶管理原型:從成功協作到代碼管理的新挑戰

  • 分享至 

  • xImage
  •  

今天設計客戶管理系統時,我延續昨天學到的成功方法:先想好需求,用人話表達,再寫Prompt讓AI協作
https://ithelp.ithome.com.tw/upload/images/20250912/20178150JoMMeFIqqY.png

本以為會遇到類似的業務邏輯挑戰,沒想到這次AI協作出奇順利,90%的功能一次到位!但就在我為這次成功感到滿意時,卻發現了一個更基礎但同樣重要的問題:代碼文件管理。

客戶管理的實際需求:就是簡單的CRUD

按照這個流程,我先分析了客戶管理在門市的真實使用情境。與昨天產品查詢的複雜業務邏輯不同,客戶管理系統其實相對簡單直接。

核心功能需求:

  • 客戶資料的新增、查看、編輯、刪除
  • 基本的搜尋和篩選功能
  • 客戶資料包含:姓名、電話、地址、會員等級、備註

門市使用情境:

  • 客戶進門時快速查詢客戶資料
  • 新客戶註冊時建立檔案
  • 客戶資料異動時即時更新

沒有複雜的暫存機制,沒有多維度篩選,就是最基本的資料管理功能。相比昨天的產品查詢,這應該是輕鬆的一天。

第一版Prompt:延續成功的協作模式

基於前幾天累積的經驗,我設計了第一版Prompt:

根據Layout框架設計.md和業務邏輯.md,設計一個客戶管理系統:

使用情境:
- 店員需要快速查看和管理客戶資料
- 支援客戶的新增、編輯、刪除功能
- 客戶資料包含:姓名、電話、地址、會員等級、備註
- 需要基本的搜尋和篩選功能

Layout要求:
- 沿用Dashboard的固定框架設計
- 左側客戶列表,右側客戶詳細資料
- 支援新增/編輯的彈出視窗
- 保持與其他頁面的視覺一致性

功能需求:
- 客戶CRUD操作
- 搜尋功能(按姓名、電話)
- 篩選功能(按會員等級、地區)
- 會員等級的視覺標識

請產出完整的HTML原型,包含互動效果。

90%完成度的第一版成果

Cursor的表現超乎預期!第一版產出就已經90%符合需求:
https://ithelp.ithome.com.tw/upload/images/20250912/201781507JfBtfsegg.png

幾乎沒有需要大幅修正的問題,只有一些小細節需要調整,比如會員標籤的顏色深度、表單驗證的提示訊息等。

相比昨天產品查詢第一版的化妝品假資料問題,今天的客戶管理一次到位的成功率讓我很驚喜。

但是,代碼行數的無情增長

正當我為這次順利的協作感到高興時,突然意識到一個被忽略的問題:代碼檔案又變成巨獸了!

行數統計的現實:

  • Dashboard: 800行
  • Products: 1500行
  • Client: 1500行

這還只是第二階段的開始!後續還有訂單系統、退換貨系統等更複雜的頁面,如果繼續用單一HTML檔案的方式,很快就會面臨維護災難。

實際遇到的問題:
當我想調整客戶卡片的背景顏色時,要在1200行混合代碼中搜尋對應的CSS規則,經常找錯位置。

當我想理解新增客戶的邏輯時,JavaScript函數散佈在HTML的各個角落,需要來回跳轉才能看懂完整流程。

當我想統一調整底部Tab樣式時,需要在Dashboard、Products、Client三個檔案中重複修改,很容易漏改或不一致。

Cursor協作效率的下降

1500行混合代碼對Cursor協作造成的影響比想像中嚴重:

修改定位困難:
「請修改客戶卡片的樣式」→ Cursor需要花時間在1200行中找到正確位置,有時會修改錯區域。

上下文理解複雜:
HTML結構、CSS樣式、JavaScript邏輯混在一起,Cursor需要更多時間理解整體架構。

修改精確度下降:
複雜的檔案結構讓Cursor的修改建議變得不夠精準,經常需要多次來回調整。

這些問題隨著檔案大小增加而惡化,必須找到解決方案。

基本解決方案:檔案分離

解決方案其實很簡單:把CSS和JavaScript拆分成獨立檔案。

我向Cursor提出了分離需求:

請將這個客戶管理系統拆分為三個檔案:

1. client-management.html - 只包含HTML結構
2. client-management.css - 所有CSS樣式
3. client-management.js - 所有JavaScript邏輯

HTML檔案用<link>和<script>引用外部檔案,功能保持完整。

分離後的顯著改善

拆分效果立竿見影:

檔案結構清晰:

  • client-management.html:從1200行縮減到180行,只有乾淨的HTML結構
  • client-management.css:750行純CSS,樣式規則井然有序
  • client-management.js:540行純JavaScript,函數邏輯清楚易懂

Cursor協作效率大幅提升:

  • 要改樣式?「請修改client-management.css中的.customer-card背景色」
  • 要改功能?「請在client-management.js中加入客戶排序功能」
  • 修改定位精確,不會影響其他部分

開發維護更容易:

  • HTML結構語義清楚,容易理解頁面架構
  • CSS集中管理,視覺調整更直觀
  • JavaScript邏輯獨立,函數關係一目了然

後續擴充更方便:

  • 想複製樣式到其他頁面?直接參考CSS檔案
  • 要理解某個功能?只需專注JS檔案
  • 檔案職責清楚,降低意外修改風險

適用時機和經驗總結

什麼時候該分離檔案?

  • 當單一HTML檔案超過800行時
  • 當Cursor開始出現定位困難時
  • 當需要重複修改相同元素時
  • 當協作效率明顯下降時

分離的好處:

  • 提升AI協作精確度
  • 簡化代碼維護工作
  • 改善檔案可讀性
  • 便於後續功能擴充

這不是過度工程化,而是基本的代碼管理實踐。即使是prototype階段,當複雜度超過某個門檻時,適當的檔案組織仍然必要。

客戶管理系統讓我學到:好的協作不只需要好的方法論,還需要好的代碼管理。當工具開始限制效率時,就是改進工作方式的時機。檔案分離雖然簡單,但對協作效率的提升非常明顯。
好的工具配上好的組織方式,才能發揮最大的協作效率。


上一篇
產品查詢原型:AI理解複雜業務邏輯
下一篇
訂單系統原型:工作流程的視覺化設計
系列文
AI協作開發實戰:從需求到原型的挑戦16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言