架構的思想與指導原則——架構師的思維

出版圈郭志敏發表於2012-06-14

一個人太不切實際,我們稱之好高騖遠;一個人有眼界視野,我們稱之高瞻遠矚。同樣是高、遠,為何描述著兩種完全不同的人?因為前者的好、騖講的都是追求,而後者的瞻、矚,指的卻是具體的行動。當我們把高遠的目標只作為一種追求,而不付諸於實踐的時候,就是不切實際;當我們把它變成“時時顧看”這樣的行動時,我們就漸漸地變得有眼界視野了。

所以志存高遠並沒有錯,只是要切忌不務實。這裡的“著眼於高遠”,便是架構師的基本修養,而幾乎所有的架構思維,都從這修養中來。

就架構來說,“高”就是指空間上的可擴充性,即系統的複雜性是否可以通過組成部件的增減來解決;“遠”就是指時間上的可持續性,即系統的規模是否可以劃分為多個時間階段來實施。以軟體架構為例,在討論系統——這一架構目標的屬性時,架構師可能關注的話題包括效能、可用性、可靠性等十餘種,我們可以通過高、遠兩個維度的思考將它們大致地分類,如圖4-1所示 。

enter image description here

如果我們說,這樣的圖是沒有意義的,因為它對一個工程的具體實施毫無意義,那麼這是專案經理的思維;如果問這樣的圖是如何以及用什麼樣的工具做出來的,又或者討論填以什麼樣的顏色更為漂亮,那麼這是程式設計師的思維。但是,如果我們問:在這個圖的形成中,我們做了什麼?那麼,這就是架構師的思維了。

如上這些談論,總的來說包括了修養與思維這兩個方面。其論述為:

(1) 我們做了一個語言文字中的高、遠與架構思維中的高、遠的比擬;

(2) 我們對架構思維中的高、遠進行了明確的定義;

(3) 我們將既有的架構方法置於上述定義,並嘗試消化其中的衝突;

(4) 我們確定上述思維的結果,是一種架構產出;

(5) 我們通過對比找出幾種思維模式的差異,並確定上述過程,即是架構師的思維;

(6) 我們通過回顧這一過程,證明架構思維過程的有效性:產出上述的架構。

在上面,我們反覆地運用架構思維,得到了兩個主要的架構產出,其一是“架構師的基本修養”,其二是“架構師的思維過程”。在這個過程中,不同階段我們使用了不同的思維工具,如表4-1所示。

enter image description here

任何一個優秀的架構師都有自己獨特的思考方式,這決定了他如何抽象系統,以及如何“創造性地”設計與構畫這個系統。例如,我們一直在討論的“架構思維”——這樣一個內在的系統與規則都是未可知的新東西。對此我們沒有現成的、成熟的詞彙去描述它,因而必須構建一個抽象系統,或對映或重現這個“架構思維”,進而闡述清楚它的架構與邏輯。

在這個過程中,我們需要三種能力:概念抽象能力、概念表達能力和基於概念的邏輯表達能力。我們已經展示了概念抽象能力,即上述步驟中的第1~3步;概念表達能力,即圖4-1與表4-1;概念的邏輯表達能力,即上述步驟中的第4~6步,以及至此你所看到的全部過程。

相關文章