← 所有專案案例 — 合約工程

跨境電商與營運平台

以首位工程師身分負責平台架構與交付,帶領另一位工程師開發內部應用,並負責系統整合、交易控制及存取邊界。

角色軟體工程師(合約)
期間2025.07 — 至今
互相整合的應用4
銷售通路B2C / B2B
負責範圍設計至維運
(A)電商 · 營運 · 客戶服務
4
互相整合的應用
訂單 → 帳本 → 結算
ARCH — 交易設計 · 存取邊界 · 稽核紀錄 · 維運商城零售+B2B營運後台商品+結算員工工作中心任務+資源客戶服務入口表單+個人紀錄共用業務模組交易 · 紀錄 · 文件POSTGRESQL角色授權 · 列級安全性支付整合 · 物件儲存 · 排程維運商城零售+B2B營運後台商品+結算員工工作中心任務+資源客戶服務入口表單+個人紀錄共用業務模組交易 · 紀錄 · 文件POSTGRESQL角色授權 · 列級安全性支付整合 · 物件儲存 · 排程維運
應用與資料庫共用能力資料流動

四個應用,明確分工

共用業務模組,分別支援客戶與員工的工作流程。

應用責任
商城零售與 B2B 訂單、支付及履約
營運後台商品、帳戶餘額、結算與簽署作業
員工工作中心任務、共用資源與客戶服務紀錄
客戶服務入口表單、個人紀錄與帳號設定
不同應用共用領域程式,依職責取得資料權限。

專案範圍與我的責任

我以首位工程師身分加入,初期獨自負責開發,目前持續負責技術方向、架構與上線交付。我直接與業主確認商業規則及營運流程,再將需求落實為系統功能。

現在由我帶領另一位工程師共同開發,對方負責工作中心與會員專區。我釐清需求、設計系統架構、拆分與分配工作,提供技術指導並開發核心平台功能,並將對方的成果整合至共用帳號、資料存取與部署流程,包含處理共用資料庫 migration 的衝突,以及不同應用版本之間的相容性。隨需求變動,我會持續調整開發方向與架構、重新拆分任務,並合併協作成果。

目前平台整合四個應用:

應用 已完成的工作流程
商城 零售與 B2B 採購、帳戶餘額、結帳與履約
營運後台 商品、促銷、結算、客戶帳號與簽署作業
員工工作中心 任務、共用資源、客戶紀錄與表單
客戶服務入口 個人紀錄、表單與帳號設定

本文只介紹目前的實作;範例與架構圖經過抽象化,保護客戶資訊。

交易正確性

結帳需要同時處理庫存、價格與帳戶餘額。我以固定順序鎖定商品資料,再重新讀取可售量;價格由伺服器計算,餘額則透過帶條件的更新處理。未付款訂單作為庫存預留的依據,付款完成時才扣除實體庫存。

餘額異動統一經過共用模組,在同一資料庫交易內更新帳戶並記錄流水。付款、取消與逾期共同競爭待處理的餘額預留,透過條件式狀態轉換,避免不同請求各自扣用或釋放同一筆款項。

B2B 帳號另外區分下單人與付款人,讓採購權限、支出額度及主帳號付款可以並存,也保留每筆交易的實際操作者。

結算與對帳

我將佣金建列、撥付資格與退款調整分開處理。撥付時,在同一交易內認領符合條件的紀錄並入帳;退貨則沿用原始計算依據調整金額,保留規則與交易狀態改變前的計算基礎。

每日對帳獨立檢查流水加減、餘額銜接、凍結款項,以及相關訂單、退款與結算紀錄。資料庫約束能阻止不合法的總額,但不能證明每筆業務事件都有正確入帳;交叉比對這些紀錄,才能進一步找出差異。

共用帳號,分別限制資料存取

四個應用共用帳號系統,各自保有不同的資料權限。我在應用層驗證操作權限,也以 PostgreSQL 角色、受限授權與列級安全性保護客戶服務資料。

客戶查詢使用已驗證的登入身分,並將身分限制在當次資料庫交易內,避免連線重用時帶入其他請求。員工檢視或匯出受保護的客戶紀錄時,會先寫入存取紀錄,再回傳資料。

整合測試使用受限資料庫角色驗證允許與拒絕的情境,包括客戶無法讀取其他人的資料,以及應用即使共用資料庫,也不能查詢無關的資料。

電子文件簽署

我完成了包含範本版本、可設定欄位、限時簽署連結及 PDF 產製的簽署流程。接受簽名之前先核對文件雜湊,對同一簽署請求的競爭操作進行序列化,並以雜湊串連同意、簽署與完成等事件。

完成後的 PDF 與文件指紋,提供後續查核的依據,讓簽署內容能對回當時的操作紀錄。

維運與驗證

共用 TypeScript 套件統一不同應用的交易規則與驗證邏輯。排程保留執行歷程及失敗結果,透過資料庫認領機制協調執行。測試涵蓋餘額異動、重複撥付防護、存取隔離、簽署驗證,以及在可拋棄 PostgreSQL 環境中執行資料庫 migration。

這些維運控制與使用者功能都在我的責任範圍內:一個完成的流程,必須有明確結果、可追查的紀錄,以及兩者不一致時的調查方式。

延伸文章