晚上大陸某網友 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),才有可能對架構有進一步的認知與體悟。
架構不會是純有形、也不會是純無形;看來很抽象,但有時卻可以很明確地具像化。
架構為 “無” 時,以觀其妙,架構為 “有” 時,以觀其徼。此兩者﹐同出而異名﹐同謂之玄。玄之又玄﹐眾妙之門。 😉
當有top-down或botton-up的想法時,事實上便已經把自己的思緒鎖死在某個領域裡,開發某個系統,便是發掘這個domain的道,道常在,不會因為不去碰觸而失去,只是等待你去得這個道,所以把軟體設計的精神放在打開黑箱的作法,,開發系統只是不停的打開黑箱,並找出其之間的關係,此法應較符合物件導向的精神。
長久以來一直來這個地方找尋寶物,一樣是軟體的領域
我還在Coding上下基本功…
我想對於架構這種東西,我還得下更多的功夫去揣摩
希望有朝一日,我也可以邁向系統分析:xd
Ken你好:
施純協先生的確是蠻擅長將中國的哲理應用在軟體設計的領域,蠻有意思的,也謝謝你建議的書籍,有機會可以去找找看參考。
也謝謝您對「架構」一詞的經驗分享,有機會倒是可以分享彼此的經驗。 🙂
久未來跟您請安,您的文章依然精彩,小弟的blog則是雜草叢生矣,久未動筆寫寫文章了。
其實資訊領域學得越久、越多,越覺得其奧妙之處,尤其與中國哲學相似相通之處實在太多了,如您所結語提到的道德經(希望弟沒記錯!);之前曾於學校受教於施純協教授門下,施老師對於中國哲理與資訊科技的闡釋有獨到的見解,像是用八卦解釋數學方程式,也令弟之後茅塞頓開,而後於許多程式及觀念中亦發現合若符節,也覺有趣。
對於「架構」一詞,小弟見淺,不大懂所謂的 RUP 的 4+1 View,倒是可以說說弟的經驗:架構像是把「將抽象化的概念具體表達」,也可說是某種程度的”量化”表示,架構的關鍵意涵及術語的掌握度絕對需要「經驗」做基底,而經驗正好是反饋機制的一種結果,最近接觸的KM也是類似的概念。(名可名,非常名?)
網友用「open a black box」與施老師的著作「黑房中的黑貓」這本書名及內容有異曲同工之妙,若您有興趣,倒是可以翻閱看看。:)
弟資歷尚淺,一點淺見,希望大家一起討論、指正。