與大陸某網友討論架構設計的觀念

晚上大陸某網友 msn 與我對話,討論一些對軟體設計的看法。
他自己有個不錯的 Blog,專門在研究 Middleware and Software Architecture 設計。

網址: http://webscope.blogdriver.com/webscope/index.html

我最喜歡一開始問一個問題了:
「軟體設計的開發會是往 “Top-down” or “Bottom-up” 的模式呢?」

嘿嘿,他沒有被我給騙到,甚至,回文的內容相當地有水平,值得收錄!

“software design more likes “open a black box”,this process can help us to get more hints about the complex of this system,I think “top-down” or “bottom-up” isn’t a way.”

事實上,我回應的是,設計的開發會是 “回饋環路(Feedback Loop)”,他也非常認同,Process 最重要的即在於 “反饋” 與 “溝通”。

他又提問了一個問題,關於如何對架構作 “POC(Proof Of Concept)”。呵呵,我馬上反問:請問架構如何作測試? 他的回答是:不好意思,我常心測、目測。

所以,真正的問題是,到底架構(Architecture) 是什麼?若不清楚到底那個 “架構” 如何 “拿” 出來,又如何測試架構呢?

對 “架構” 這一詞實在非常難之解釋,若是聽到有人是以 RUP 的 4+1 View 來解釋架構,那我大概知道,那對架構的認知應該是太狹隘了。

至少,我個人認為,要能確實瞭解與體會下列幾個與架構至為關鍵的意涵與術語,包括了:
整體、觀點(View),包括巨(Macro)觀與微(Micro)觀、焦點(Focus)、層次(Layer)、廣度(Boundary),才有可能對架構有進一步的認知與體悟。

架構不會是純有形、也不會是純無形;看來很抽象,但有時卻可以很明確地具像化。

架構為 “無” 時,以觀其妙,架構為 “有” 時,以觀其徼。此兩者﹐同出而異名﹐同謂之玄。玄之又玄﹐眾妙之門。 😉