軟件架構師不是建筑架構師。他們之間除了名字,沒有任何的共同之處。把軟件架構師和建筑架構師類比,甚至把他們等同起來,是一種錯誤的觀念。
建筑是實體的,軟件是形式的。實體的建筑以結構為其主要內容,輔以少量動態的考慮(給水、排水及其他)。軟件則是靜態的結構和動態的行為的結合體。從這個 角度,建筑師的建模主要是靜態的建模,比一個機械工程師,他多了藍圖的繪制的工作;而一個軟件架構師不僅要對軟件的結構進行建模,還要對軟件的運行時刻的 行為建模。
建筑是一次性的,軟件是演變的。雖然我們也說“舊城改造”,但那是拆了重建,而不是在原基礎上改造。一棟造好的樓房,是不能在上面再增加一層的。軟件則是 在原基礎上修改,以滿足用戶需要。在這個前提下,建筑的架構是不會改變的;而軟件在多次修改的情況下很可能觸及架構上的變動。所以軟件架構師必須在軟件的 整個生命周期中時刻注意架構是否會變化,并且可能會主動調整它。
在建筑設計中,必須滿足結構力學等基本原理,否則生產出來的建筑本身的使用質量沒有保證,這是一個強制的要求,也存在相關標準。而軟件在設計上只有一堆原 則,指導我們設計。即使你沒有遵循這些原則,生產出來的產品一般也是可用的,具有使用質量,但產品改進的質量就難說了。因此軟件的設計也比較難以把握,生 產一堆可用的垃圾的情況比較普遍。
建筑投資商往往給出一些量化的數據,建筑師把這些量化的數據轉變成一個實際的建筑,在這個過程中一般不會有大的偏差。而軟件尤其是應用軟件,強烈依賴于用 戶的需求。我們設計應用軟件,基本上等同于對用戶的行為進行建模,在目前對于人類行為的研究遠遠低于對于基礎數學、物理學研究的情況下,一次成型的軟件是 不可能存在的。應用軟件的開發,基本可以描述為“在變化的基礎上工作”。
在滿足使用質量的前提下,建筑師極力追求建筑的外形。而軟件也有這樣做的(國產的一些網頁,大家是否也覺得惡心呢?)。但一般用戶在滿足其開始的外在表現 的要求之后,慢慢就越來越關注軟件的內容,關注軟件是否真的幫助到了他們的生活,并且開始發起一次次的修改請求。
綜上所述,軟件架構師和建筑師的差別巨大,試圖以建筑師的角度解釋軟件架構師,甚至想找到一個類似的解決之道,是不可行的。而對于初步接觸架構師的人來 說,總是把架構師和建筑師對比也很容易誤導他們。類比固然可以幫助理解,但也可能造成誤解。
從另一個角度考慮,假設軟件架構師和建筑師確實可以互通,那么如果存在一個既是軟件架構師又是建筑師的人,他就可以領導軟件產業一往無前 了。可是這么多年來,為什么沒有這樣一個人呢?
建筑是實體的,軟件是形式的。實體的建筑以結構為其主要內容,輔以少量動態的考慮(給水、排水及其他)。軟件則是靜態的結構和動態的行為的結合體。從這個 角度,建筑師的建模主要是靜態的建模,比一個機械工程師,他多了藍圖的繪制的工作;而一個軟件架構師不僅要對軟件的結構進行建模,還要對軟件的運行時刻的 行為建模。
建筑是一次性的,軟件是演變的。雖然我們也說“舊城改造”,但那是拆了重建,而不是在原基礎上改造。一棟造好的樓房,是不能在上面再增加一層的。軟件則是 在原基礎上修改,以滿足用戶需要。在這個前提下,建筑的架構是不會改變的;而軟件在多次修改的情況下很可能觸及架構上的變動。所以軟件架構師必須在軟件的 整個生命周期中時刻注意架構是否會變化,并且可能會主動調整它。
在建筑設計中,必須滿足結構力學等基本原理,否則生產出來的建筑本身的使用質量沒有保證,這是一個強制的要求,也存在相關標準。而軟件在設計上只有一堆原 則,指導我們設計。即使你沒有遵循這些原則,生產出來的產品一般也是可用的,具有使用質量,但產品改進的質量就難說了。因此軟件的設計也比較難以把握,生 產一堆可用的垃圾的情況比較普遍。
建筑投資商往往給出一些量化的數據,建筑師把這些量化的數據轉變成一個實際的建筑,在這個過程中一般不會有大的偏差。而軟件尤其是應用軟件,強烈依賴于用 戶的需求。我們設計應用軟件,基本上等同于對用戶的行為進行建模,在目前對于人類行為的研究遠遠低于對于基礎數學、物理學研究的情況下,一次成型的軟件是 不可能存在的。應用軟件的開發,基本可以描述為“在變化的基礎上工作”。
在滿足使用質量的前提下,建筑師極力追求建筑的外形。而軟件也有這樣做的(國產的一些網頁,大家是否也覺得惡心呢?)。但一般用戶在滿足其開始的外在表現 的要求之后,慢慢就越來越關注軟件的內容,關注軟件是否真的幫助到了他們的生活,并且開始發起一次次的修改請求。
綜上所述,軟件架構師和建筑師的差別巨大,試圖以建筑師的角度解釋軟件架構師,甚至想找到一個類似的解決之道,是不可行的。而對于初步接觸架構師的人來 說,總是把架構師和建筑師對比也很容易誤導他們。類比固然可以幫助理解,但也可能造成誤解。
從另一個角度考慮,假設軟件架構師和建筑師確實可以互通,那么如果存在一個既是軟件架構師又是建筑師的人,他就可以領導軟件產業一往無前 了。可是這么多年來,為什么沒有這樣一個人呢?