WORK STORY / 01

把 ERP/MES 重複頁面收斂成 Config-driven UI Pattern

CONTEXT

情境

在華新麗華,我主要開發的是 ERP 與 MES 內部系統。

這類系統有一個很鮮明的特性:

畫面很多、流程很多、資料欄位很多,但真正拆開來看,大量頁面其實都在重複相似的操作。

例如:

  • 查詢資料
  • 顯示列表
  • 編輯欄位
  • 新增/修改/刪除
  • 驗證資料
  • 依狀態控制可以執行的操作

如果每新增一張 ERP 或 MES 畫面,就重新寫一次 Table、Form、Toolbar 與資料流,功能雖然做得出來,但系統會很快累積大量「長得不太一樣、其實做著同一件事」的程式碼。

DECISION & ACTION

我的判斷與做法

我開始嘗試把這些反覆出現的 UI 行為拆成兩部分:

哪些是所有頁面共同的運作方式,哪些才是真正屬於這個畫面的差異。

共通的資料流、CRUD 行為、欄位顯示與編輯模式逐步整理成固定 Pattern;

真正不同的部分,例如:

  • 有哪些欄位
  • 欄位如何顯示
  • 欄位如何編輯
  • 資料從哪裡取得
  • 畫面允許哪些操作

則盡量用結構化設定描述,而不是每個頁面重新實作一次。

這時候我還沒有把它稱為一套完整的 Config-driven Framework,但「讓程式處理共通規則、讓設定描述差異」這個設計方向,已經開始成形。

OUTCOME

形成的結果

ERP/MES 中反覆出現的頁面結構與資料操作,可以沿用一致的 UI Pattern 與 Data Flow。

新增功能時,開發重點逐漸從:

「再寫一張新的 CRUD 頁面」

轉成:

「描述這張頁面與既有 Pattern 有哪些不同。」

這也降低了不同模組各自形成不同 UI 與資料處理方式的機會。

REFLECTION

留下的思考

這段經驗後來成為我 Config-driven 思維很重要的起點。

當大量畫面本質上遵循相同規則時,我開始意識到:

真正值得被寫成程式的,是共通規則;反覆變動的部分,更適合被描述成資料或設定。

這個想法後來在我的工作裡持續放大。

到了 Gorilla,我遇到真正成熟的 Config-driven No-code Framework;再往後,我甚至開始用 AST 直接從程式碼推導 Framework 所需要的 Schema。