讀王概凱----架構漫談(一):什麽是架構? 有感
在本學期我們開設了軟件體系架構這門課程,提到了架構一詞,我找到了由資深架構師王概凱 Kevin 執筆的“架構漫談”系列專欄----架構漫談(一):什麽是架構?進行相關了解。
這篇文章主要是在表述到底什麽是架構,從架構的起源開始論述。文中提到架構一詞在業內有很多爭論,每個人都有自己的理解,但卻沒有大家都認可的定義,套用一句在大數據流行的笑話就是:Architecture is like teenage sex,everybody talks about it,nobody really knows what is it.(事實上我也不知道為什麽這麽說,但是話粗理不粗。)
架構(Architecture)一次源於建築,在 Wikipedia 上,架構是這樣定義的:Architecture (Latin architectura, from the Greek ?ρχιτ?κτων arkhitekton"architect", from ?ρχι- "chief" and τ?κτων "builder") is both the process and the product of planning, designing, and constructing buildings and other physical structures。(建築是規劃、設計、建造建築物和其他物理結構的過程和產物。)
這麽看,架構好像是一個過程,是人們從被動認識一個項目,到主動了解它的轉變,就好像早期的人們從獨立的個體,到分工明確的群體的進化。那麽為什麽會產生架構呢,或者說,產生架構的動力是什麽呢?
就好比人們的建築行為,從山洞到茅草屋,從瓦片房到鋼筋水泥。我覺得建築的架構的產生,是在有了建築隊之後才發生的,建築隊裏人們有明確的分工,有明確的目標任務。以此來看的話,總結出以下幾點要求:
1.必須由人執行的工作。沒有人的介入,也就更沒有由人不知不覺發明出來的架構了。
2.每個個體的能力有限。正因如此,所以在人們在群體中才會各盡其能,每個人更大限度的發揮自己的優勢(ps.這個道理好像在哪兒都能適用,畢竟現在是團隊合作的時代)。
3.每個人的時間有限。為了減少時間的投入,必然會導致把工作分解出去,給擅長於這些工作的角色來完成,從而縮短時間。
4.人們對目標系統有更高的追求。
5.目標系統的復雜性促使了人們合作的發生。
當這 5 個條件同時成立,一定會產生架構。從這個層面上來說,架構是人類發展過程中,由懵懵懂懂的,被動的去認識這個世界,變成主動的去認識,並以更高的效率去改造這個世界的方法。
總結一下,什麽是架構,就是:
1.根據要解決的問題,對目標系統的邊界進行界定。
2.並對目標系統按某個原則的進行切分。切分的原則,要便於不同的角色,對切分出來的部分,並行或串行開展工作,一般並行才能減少時間。
3.並對這些切分出來的部分,設立溝通機制。
4.根據 3,使得這些部分之間能夠進行有機的聯系,合並組裝成為一個整體,完成目標系統的所有工作。
其實總結到最後還是歸結到一個焦點:人。架構要解決的問題終歸是人的問題;完成架構終究是人去完成;架構在服務於項目的背後,終究是滿足於人的需求。搞清楚這個關鍵,問題就明朗很多了。
讀王概凱----架構漫談(一):什麽是架構? 有感