Design for Interface 的生活案例-沖煮咖啡的介面設計

** 本文同步發表於 FB 社團-軟體設計鮮思維 **

GoF Design Pattern 一書開宗明義即提及:Design for Interface!

軟體的介面設計很重要的一個精神就是:不要重新造輪子!!
如果引用某些 3rd party library/framework 的功能,要懂得利用介面與主系統隔閡掉,如此才能造成 PnP (Plug & Play)的效果。

舉個生活的範例。88度C 的主要服務是銷售糕點與咖啡,其中咖啡服務 (需求分析)需要系統有個結構元素-咖啡機 (結構設計)來實現。

咖啡機的目的是沖煮咖啡 (Interface 規格),而購置某品牌的考量可能有:1.成本低 2.穩定/快速 3.好喝

如果購買的 A牌咖啡可能故障或沒達成上述需求,那麼就直接抽換掉,可能送修或改購置另一品牌的咖啡機即可 (但前提是不應影響到主系統的服務)。

咖啡機故障/效能不佳等因素,88度C 這個系統的設計/開發人員不可能也沒必要把咖啡機打開去維修或更改電路/零件吧?

現實生活上應用這類介面規範的案例非常多,主機板透過 PCI Express (介面)可插入各品牌顯示卡即是一例。(主機板設計人員不用考量顯卡的實作)

但回歸軟體資訊系統,不懂得介面設計,直接侵入 (hack)到 3rd party library/framework,想要把輪子改得更好甚或重新造輪子。這樣不僅耗工做沒啥意義的事情,且造成主系統與這些 3rd party 的嚴重耦合 (coupling),導致不容易/無法抽換,因而造成主系統的主要服務更為僵化難以應變的後果!

圖、範例-從Twitter畫面操作找出 Use Cases

圖、範例-沖煮咖啡的介面設計

軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal