Views: 1
最近我嘗試用 CODEX 來輔助開發 UOF2 / EIP / BPM 客製功能。這篇文章整理我從昨天到今天做的事情,主要目標不是直接讓 AI 幫我改程式,而是先讓 AI 讀懂專案、讀懂文件、讀懂資料庫與既有客製邏輯,讓之後進入 Agent Mode 時可以寫出更準確、更符合現場架構的程式碼。
這篇可以當成其他 UOF2 / EIP / BPM 開發人員導入 AI 輔助開發時的 guideline。
免責聲明
一切都還在嘗試中…,我也還在摸索喔
Workspace 資料夾目錄
在讓 AI 開始寫程式之前,第一件事情不是叫它改功能,而是先整理工作區。
我目前把 UOF/EIP 相關內容集中在:
C:\WEB_AI\EIP
主要資料夾規劃如下:
C:\WEB_AI\EIP
├─ site
├─ source
├─ docs
├─ knowledge
├─ scripts
├─ tools
├─ temp
├─ .agents
└─ AGENTS.md
資料夾 site/UOFTEST
這裡放 UOF 開發環境站台內容,包含實際部署在網站中的 CDS 客製頁面、WebService、App_Data 設定等。
注意GIT版控這邊只有版控App_Data跟CDS而已,版控上我是重新弄一個repo
然後你要跟AI說CDS裡面的用途,請他看裡面已經開發的資料後記錄起來,下一個章節我會分享我請AI學習的順序
資料夾 source/custom-dlls/src
這邊放我自己開發的DLL
同樣請AI 先看過後學習起來
資料夾 source/kyti
這邊放外包廠商冠永騰提供的原始碼
資料夾 docs
這邊我把官方的範例,官方的技術文件,操作手冊,技轉的資料,自己寫的規格書,廠商寫的規格書都放進去
docs/training/CDS範例包
docs/training/XML
docs/training/補充資訊(XML結構說明)
docs/official/V28
資料夾 knowledge (AI自己生成)
knowledge/ai-context
這是最重要的一層。
原始文件通常太大、太散、格式也不一定適合 AI 直接讀。所以我讓 CODEX 把重要內容整理成 AI 可讀的 Markdown。
例如:
knowledge/ai-context/custom/FCF_WKF_OptionalFields_AI.md
knowledge/ai-context/custom/FCF_ZFCF_CustomPages_AI.md
knowledge/ai-context/custom/FCF_WS_WebServices_AI.md
knowledge/ai-context/custom/FCF_CustomDll_Triggers_AI.md
knowledge/ai-context/custom/Local_Test_DB_Descriptions_AI.md
這樣不管哪個AI Agent接手都能看
這些文件不是正式程式碼,而是給 AI 快速理解系統用的知識庫。
資料夾 .agents (AI自己生成)
這裡放 Agent Mode 的角色說明與任務模板。
.agents/uof-eip-developer.md
.agents/task-template.md
這些檔案會告訴 AI:
- 開始工作前要先讀哪些文件
- 哪些資料夾可以改
- 哪些地方不能亂改
- 遇到
Trigger、WebService、WKF 外掛欄位、DB 欄位時要查什麼 - 目前限制是不能修改既有程式碼,只能整理知識檔
AGENTS.md (AI自己生成)
這是整個工作區最上層的 AI 指令檔。
我把 UOF/EIP 專案的工作規則、必讀文件、資料夾用途、開發限制、安全規則都紀錄在這裡。之後 AI 進來時,第一件事就是讀這份。
資料夾 tools
官方的三個小工具我放在這
- 多國語言產生器
- 外掛欄位產生
- RSA編碼產生
讓 AI 開始學習
我的學習順序大概是:
- 先跟 AI 說明各資料夾用途,請它整理成
Markdown。 - 讀
docs下的官方開發手冊,轉成 AI 自己看得懂的Markdown。 - 讀
TableSchema,整理 UOF 官方資料表。 - 讀技術轉移的
CDS 範例。 - 讀
CDS下既有程式碼。 - 讀
custom-dlls/src的Trigger / DLL程式碼。 - 讀本機測試資料庫,尤其是
DB Description和Stored Procedure。 - 讀
LINQPad測試查詢,學UCO / UserSet用法。 - 讀自己的部落格文章,整理踩坑經驗。
- 在AI介面中,用打字的補充我知道但程式碼看不出來的系統邏輯。
讓AI看LINQPad的測試檔案: 我直接傳檔案給它
Coding Guide
這份是總控指南。
它告訴 AI:
- 寫程式前要讀哪些文件
- 哪些資料夾是正式程式
- 哪些是參考資料
- Trigger / WebService / WKF / 報表的上下游關係
- DB 查詢規則
- XML 處理規則
- 常見錯誤
Codebase Map
這份是程式碼地圖。
它把各模組對應到實際路徑,讓 AI 不會每次都從零開始找檔案。
Implementation Playbooks
這份是實作手冊。
依不同任務建立 playbook,例如:
- 修改 WKF 外掛欄位
- 修改 WebService 起單 XML
- 修改 Trigger
- 新增報表欄位
- DB 欄位資訊
SiteCode控制權限- 診斷 XML 與 DB 不一致
- 新增排程 Task
- 分析
Stored Procedure - 使用 UOF UCO / UserSet
- 不修改程式碼模式
打字說明
打字說明我知道的邏輯也很重要,一部分可以告訴AI確定的邏輯,也能確認AI是不是看懂程式碼,例如。
站點本身有sitecode 設定的UI上寫站點代碼
這樣AI就確認AI懂這段是怎麼用來控制欄位顯示跟Trigger運作的。
心得
用CODEX 開發 UOF2 / EIP 一開始的重點,不是直接叫 AI 寫功能,而是先建立知識庫。
UOF2 開發的難點在於:
- 官方文件不完整
- 很多功能藏在 DLL 裡
WebForms架構比較舊BPM XML結構複雜Trigger、WebService、報表、DB 之間有很多隱性關聯- 很多設定是在 BPM UI 裡,不在程式碼裡
如果 AI 沒先理解這些,很容易寫出看起來合理、但實際上不能用的程式。
所以我的建議流程是:
- 先整理資料夾。把各種檔案在資料夾分好。
- 建立 AGENTS.md。
- 把官方文件轉成 AI 可讀 Markdown。
- 讓 AI 讀現有客製程式。
- 讓 AI 讀測試 DB schema 與欄位描述。
- 讓 AI 學 Trigger、WebService、WKF 外掛欄位、報表模式。
- 把 LINQPad 測試查詢整理成知識。
- 把自己的踩坑文章整理成知識。
- 建立 Agent Mode guide、code map、playbook。
- 最後才讓 AI 開始協助實作。
簡單講:
先讓 AI 變成懂這個專案的 junior,再讓它開始寫 code。
這樣做完後,CODEX 在 Agent Mode 裡就不只是一般 C# 助手,而是比較像一個已經讀過專案文件、知道 UOF2 客製限制、知道資料庫結構、知道 Trigger 流程的開發夥伴。
0 Comments