轉享技術架構兩三語

這篇文章貌似是JavaEye裏網名QieQie的文章,他是分詞器paoding的作者,是人人網的架構師,也是Rose web框架的架構師,文中觀點很給力和到位,所以轉到這裏,呵呵,以便以後翻閱。

 

原文地址 http://ugc.renren.com/2009/12/20/technical-architecture/

 

多角度定義架構

定義架構的最短形式是:“架構是一種結構”,太棒了,這是一種正確的理解,但世界還沒太平。若做一個比喻,架構就像一個操作系統,不同的角度有不同的理解,不同的關切者有各自的着重點,多視點的不同理解都是架構需要的,也只有通過多視點來考察才能演化出一個有效的架構。

從靜態的角度,架構要回答一個系統在技術上如何組織;從變化的角度,架構要回答如何支持系統不斷產生的新功能、新變化以及適時的重構;從服務質量的角度,架構要平衡各種和用戶體驗有關的指標;從運維的角度,架構要回答如何充分利用計算機或網絡資源及其擴展策略;從經濟的角度,架構要回答如何在可行的基礎上降低實現成本等等。

沒有架構策略的系統,讓我詛咒它散掉: 人們不知道如何簡單一致地理解,不知道如何加入一個新功能,如何調高或調低某個服務質量指標,如何應付增大的訪問,如何提高系統的容錯能力或穩定性,如何充分省錢。沒有良好架構支持的系統,出來混的遲早要還!我們詛咒他散掉。

 

如何得到一個良好的架構?
隻言片語

像媽媽那樣優生

架構所要做的是一個“細節還未完全落實的技術決策,這個決策是一個框架、是一種權衡、是一個路線圖”,這個決策規定了整個系統的技術“風格”和後續技術發展方向。

系統的開發是一個從無到有的過程,需要不斷地迭代:功能上不斷地豐富,技術上不斷地完善。如果把一個系統比喻一個人,怎麼讓這個人不斷地往健康、完備的方向成長就是我們的目的了。一開始,這個人並不完善,包括很多器官並不成熟,甚至沒有,通過營養的攝入,時間的沉澱,不斷地重構最終成功。人也需要重構?!不是嗎?血液的60天一變換,牙齒的兩次生長等等(注1),有一個專業術語“新陳代謝”! 當一個人新陳代謝的能力下降的時候,也就是老了。

在系統從無到有的過程,架構要着眼於未來,落實於現在,規劃迭代、優化的路徑。這個架構要支持目前最緊迫的任務:“生出來”,也要支持以後能不斷地新陳代謝的可能性,兩者缺一不可。

 

像理想那樣追求

系統的每個階段都很重要,一個好的起點並不意味着一直會好下去,制定了各種策略後,貫徹、執行是最重要的課題。沒有人一開始就想把一件事情做糟糕,但這個世界就是這樣,很多事情都會變壞,越來越不可控。導致如此境地的主觀原因就是自己沒有設法去維護、堅持、貫徹原先的理想。作爲一個程序員或架構員,要不斷審視自己開發的系統,主動維護系統的架構,如若發現有對架構產生破壞的地方,應該適時糾正,堅持零容忍。如果不零容忍會怎樣?千里之堤潰於蟻穴,我們詛咒他散掉。

 

誰來做架構?

架構師這樣的一個帽子,很多人會閃閃躲躲。

國外多少年的工作經驗纔可能成就一個架構師,而國內3、5年工作經驗的小毛頭就說自己是個架構師了。通常認爲,架構師理應無所不能,一旦有人被稱爲架構師,他就應該接受重重的檢驗。總之,那些自稱是架構師的人在冒着道德風險。但,同學們不要膽卻,所謂時勢造英雄。有人稱你是一個英雄,那是因爲你被需要,要勇敢地站出來,扮演好自己的角色是對崗位的敬畏。當我把你看成是一位架構師的時候,我需要你不斷地給自己暗示,不斷地以理想的架構師來要求自己,和同學們在工作中學習,一項一項地突破自己,把工作做好。

一個組織可能會明確地任命一些人爲架構師,但大部分的組織可能不會。但在一個項目團隊中總有需要有人完成類似的工作,這可能是一個人,也可能是整個團隊在商量的氣氛中完成。

我的意見是:如果你願意,你就是架構師!

 

架構模式

當一個問題、一個系統可以採用很多解決方式來設計時,我們採用什麼方式並且以一致的思想、方式解決這個問題時,這就是風格了,當這種風格具有可複用性那就是一種模式了。在編程上,我們有“設計模式”的指導,在架構上,我們也應該總結一些良好的模式出來,應用在不同的情況。關於這方面的資料,目前並不難找。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章