軟體設計階段是否需考量實體系統環境的配置?個人認為是 “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 之間就會溝通上的衝突了。
請問什麼是Transaction起始之定義??
謝謝你…
請參考我第二篇:軟體設計與交易-2
http://www.kenming.idv.tw/er_el_euseu_e_aoca_l2g_what_is_transacti