ERP 的複雜度不在單一功能有多難,而在同一件事被重述太多次、乘以太多張表、再乘以太多次客製。
這個系列談的不是怎麼用框架做一張表單,而是怎麼設計一套能驅動上百張表單的框架:唯一真相放在定義而非程式碼,資料庫結構、SQL、多前端畫面、驗證與計算、多語系、多租戶與客製化都從同一層定義衍生。
三十篇分八章,從為什麼談起,依序走過定義層、資料存取與快取、業務邏輯與 API、多租戶與客製化、傳輸安全與稽核、資料語意,最後回到案例對帳與全圖。案例用 Northwind 驗證,但案例是佐證,不是主角。
談機制與取捨,不寫使用教學;每個設計的代價會跟它的好處寫得一樣清楚。
這是「ERP 架構師筆記:定義驅動的框架設計」系列的 Day 1。 接下來三十天談的不是「怎麼用某個框架做一張表單」,而是怎麼設計一套能驅動上百張表單的框架:...
昨天結尾說今天要談框架該替使用者決定哪些事。 框架與函式庫的差別常被說成「你呼叫函式庫,框架呼叫你」。這句話描述的是機制,不是代價。真正的代價是控制權反轉之後...
前兩天談的都是命題,今天讓案例登場。 案例是 Northwind,微軟那套從 Access 年代流傳到現在的範例資料庫。選它的理由很現實:客戶、供應商、產品、...
「定義是唯一真相」聽起來像是有一份檔案裝著全部真相。實際打開一個專案的定義目錄,看到的是十三種定義類型:有的是根目錄下的單一檔案,有的一支程式一份、散在子資料...
昨天把定義檔逐一攤開,FormSchema 是其中的定義中樞。今天問一個具體的問題:一張表單的查詢與存檔,那幾句 SQL 是從哪裡來的。 本篇說明: 新增一...
昨天那些 SQL 都是在存取資料,今天換另一件事:那些資料表本身是怎麼來的。 資料表有哪些欄位、每欄多長、哪幾欄要建索引,權威在 TableSchema 上,...
昨天那一層的產物是實體資料表,改一次要搬資料,還得先算要不要停機。今天回到畫面這一側,性質正好相反:畫面要改,改的是一份定義,不必更版;而且改一次,所有前端一...
前面幾天從定義長出來的都是具體產物:資料表、CRUD 語句、四個端的畫面。今天這一項不造東西,它拿定義裡寫著的算式去算:算完把值填回欄位(ValueExpre...
一次請求走前端 → API → Business Object → Repository → 資料庫,每一層都要拿到同一筆資料。多數系統在這裡放的是自己寫的型...
「支援 SQL Server、PostgreSQL、MySQL、Oracle、SQLite」寫在規格書上是一行字,寫在框架裡是一個必須先回答的問題:到底要替它...