軟體設計與交易<1>

軟體設計階段是否需考量實體系統環境的配置?個人認為是 “Yes”。因為設計並非「昧於事實」。

舉個例來說,Architect 檢視 Designer 所繪的循序圖,他需要瞭解到交易的源頭(Transaction Root)是起始於那個物件?
若是 Transaction 是自 Server Page(如 ASP.NET or JSP/Servlet)啟始,那可能是 “Bad design”;
若是 Transaction 是自 Control Object 啟始,但與 Desinger 溝通,發現到 Control Object 是被設計為 “Stateful” 物件,哪麼,這也可能是不佳的設計。

為什麼?因為交易根物件(Transaction Root Object)在符合 “ACID” 的四項原則下,盡可能交易一完成就立即釋放資源(Resource),這是實體 3-Tier 典型的特性。所以,Architect 此時就必須與 Designer 溝通:交易根物件設計為 “Stateless” 物件較為適宜。

軟體設計者若依循古典物件導向,沒有考量到分散式系統的設計,因而,都假設所有的物件為 “Stateful”,且對交易等的問題,認為是至實作面才去解決。哪麼,很有可能變成是 “紙上談兵”,往往 Designer 與 PG 之間就會溝通上的衝突了。

文章導覽

   

共有 2 則迴響

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *