接續昨天的系統量化之路透過AI提供了詳細的規劃,今天要分享 AI 如何在實際開發中扮演關鍵角色,快速建立出完整的追蹤系統。從 Google Apps Script 到前端 GTM 腳本,讓我們看看 AI 協作開發的實際威力。
傳統開發一個完整的資料追蹤系統可能需要數週,但透過 AI 協作:
AI 不只是程式碼產生器,更是經驗豐富的開發夥伴:
// AI 自動考慮的安全性檢查
function handleRequest(e) {
try {
// 域名白名單驗證
var allowedDomains = [
'backend.dio.com',
'dio.com',
'localhost'
];
// 時間戳驗證(防止重播攻擊)
var timeDiff = Math.abs(now - requestTime);
if (timeDiff > 60 * 60 * 1000) {
return ContentService.createTextOutput('Request too old.');
}
} catch (error) {
return ContentService.createTextOutput('Error: ' + error.toString());
}
}
AI 能理解複雜的業務流程並轉換為程式邏輯:
// 自動判斷流程類型
function getFlowType(currentPage, referrerPage) {
if (currentPage === 'customer_list') return 'customer_oriented';
if (currentPage === 'order_list') return 'order_oriented';
// AI 能自動處理各種邊界情況
return 'unknown';
}
AI 協助建立測試案例
測試情境:
1. 正常新建會員(save 後回到 index)
2. 新建會員並繼續編輯(save_and_continue)
3. 編輯現有會員
驗證點:
- Google Sheets 欄位正確性
- Process ID 流程串接
- 時間戳記錄完整性
即時問題診斷
// AI 設計的批次事件處理機制
function sendPendingEvents() {
var pendingEvents = getPendingEvents();
if (pendingEvents.length === 0) return;
// 整合傳送避免 URL 過長問題
var consolidatedData = {
event_type: 'CONSOLIDATED_T1_T3',
pending_events: JSON.stringify(pendingEvents)
};
// 使用 POST 方法處理大量資料
fetch(GOOGLE_SCRIPT_URL, {
method: 'POST',
mode: 'no-cors',
body: formData
});
}
實際部署流程:
當我提出需求時,AI 會:
🤖 AI: "我理解您的需求是追蹤 T1-T8 的完整流程,
讓我確認一下邏輯:
- T1: 進入客戶/訂單管理頁
- T2: 開始處理客戶資料
- T3: 客戶處理完成
...
這樣的理解正確嗎?"
// AI 會主動確認資料結構的合理性
var eventData = {
process_id: generateProcessId(), // 流程唯一識別
session_id: getSessionId(), // 會話管理
event_type: 'T1', // 事件類型
flow_type: 'customer_oriented', // 流程導向
timestamp: Date.now() // 時間戳記
};
// 🤖 "這個資料結構是否符合您的 Google Sheets 欄位設計?"
AI 會主動提醒潛在問題:
階段 | 傳統開發 | AI 協作開發 | 提升效率 |
---|---|---|---|
需求分析 | 2-3 天 | 1-2 小時 | 12倍 |
程式撰寫 | 5-7 天 | 2-3 小時 | 20倍 |
測試除錯 | 3-5 天 | 4-6 小時 | 10倍 |
文件撰寫 | 1-2 天 | 30 分鐘 | 20倍 |
問題:客戶導向 vs 訂單導向的流程判斷
實際情況:
// 需要精確判斷使用者的操作路徑
function getFlowType(currentPage, referrerPage) {
// 從文件中可以看到,實際的流程判斷比想像中複雜
if (currentPage === 'customer_list' && referrerPage === 'direct') return 'customer_oriented';
if (currentPage === 'order_list' && referrerPage === 'direct') return 'order_oriented';
// 還有很多邊界情況需要處理
}
問題:何時該暫存事件,何時該直接發送
解決方案:
// AI 幫助設計的暫存機制
if (isPending && ['T1', 'T2', 'T3'].indexOf(eventType) !== -1) {
addPendingEvent(data); // 暫存到 localStorage
} else {
// 直接發送到 Google Sheets
sendToGoogleSheets(eventType, additionalData);
}
問題:確保同一個 process_id 下的所有事件都能正確關聯
解決方案:
// 透過 process_id 和 session_id 確保資料完整性
function generateProcessId(flowType) {
return 'process_' + flowType + '_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);
}
❌ 不好的提問:「幫我寫一個追蹤程式」
✅ 良好的提問:「我需要追蹤用戶從客戶管理到訂單完成的 8 個關鍵節點,資料要存到 Google Sheets,需要考慮安全性和錯誤處理」
透過 AI 協作開發追蹤系統的經驗可以得到: