ERP 的複雜度不在單一功能有多難,而在同一件事被重述太多次、乘以太多張表、再乘以太多次客製。
這個系列談的不是怎麼用框架做一張表單,而是怎麼設計一套能驅動上百張表單的框架:唯一真相放在定義而非程式碼,資料庫結構、SQL、多前端畫面、驗證與計算、多語系、多租戶與客製化都從同一層定義衍生。
三十篇分八章,從為什麼談起,依序走過定義層、資料存取與快取、業務邏輯與 API、多租戶與客製化、傳輸安全與稽核、資料語意,最後回到案例對帳與全圖。案例用 Northwind 驗證,但案例是佐證,不是主角。
談機制與取捨,不寫使用教學;每個設計的代價會跟它的好處寫得一樣清楚。
昨天結尾停在一個情況:一家公司要的差異大到語系與版面都接不住。那類需求的形狀跟前兩篇不一樣:存檔前多一道信用額度檢查、存檔後把單據同步到另一套系統、刪除時通知...
昨天結尾說換一個層面。從這裡開始,題目不再是定義裡宣告了什麼,而是這些定義與資料離開記憶體之後怎麼走。 序列化是兩件事。一件是持久化:物件要存下來,下次還得原...
昨天結尾說今天看 value 上的另一半。Encoded 與 Encrypted 在 API payload 上只差一個數字,底下卻是三段有先後的處理,而回程...
昨天結尾說今天換一條軸。保護等級管的是一次呼叫的形式,它從頭到尾沒有問過這個人可以看到哪些資料。 權限是 ERP 躲不掉的題目,而它從來不是一個問題,是三個:...
有人來問「這一筆的金額上個月是誰改的」,多半已經是幾個月以後的事。問的人手上沒有當時的畫面、沒有當時的程式版本,只有當時留下來的那幾列記錄。誰登入、誰把哪一個...
前面幾章問的是這個值進不進得去、傳不傳得到、要不要被記下來。這一篇換一個問題:進去了的那個值代表什麼。 一張單據上的數量、單價、金額、折扣率、匯率,在 Tab...