Posted on 2008-09-18 22:54
非魚 閱讀(2342)
評論(4) 編輯 收藏 所屬分類:
面向對象設計
架構師最重要的工作是思考。思考導致決策,或者選擇。
為決策而思考
架構師思考的出發點是成就受益人的利益,目的就是為了最終做出決策。在開始的時候,往往會有一些明顯的途徑,也會有一些隱含的途徑。架構師要根據所掌握的信息,結合自身的知識、經驗,盡可能找出所有的途徑,思考哪條途徑是最合適的。在這個過程中,有一些途徑會很快被排除。排除一條途徑的依據,首先是
軟件的價值,其次是軟件的假設和前提。良好的實踐是記錄這些思考過程中被排除的途徑,特別是對于經驗不是特別豐富的架構師來說,這非常重要。
需要特別提出的是,不要因為不精通某項技術而排除可行的途徑。因為一般情況下,技術對軟件價值的影響是次要的。比如,當你在JSF和struts之間搖擺的時候,把這個問題提出來討論,是更好的做法。
決策需要依據
決策是合理的(Reasonable)選擇。架構師需要考慮各種選擇的優缺點,再根據實際情況,找到支持決策的依據。因為個人及項目等多方面的原因,這些依據也可能是不充分的。但這不要緊,最重要的是,決策要有依據,這就夠了。在思考和討論的過程中,對于反面的意見(不支持決策的依據),也要充分考慮和記錄,因為不知道什么時候,這些因素會因環境、認識的變化而由假成真,如果沒有相關的記錄,你會為此而失去一次寶貴的成長機會。:)
有時候也需要選擇
人的智力是有限的,眼界也是有限的。有時候你會發現幾條路徑很難說哪個更優一點。這時候你面臨的就是選擇,像擲骰子一樣。這是架構設計中風險最大的地方。墨菲定律說:“凡事只要有可能出錯,那就一定會出錯。”(Anything that can go wrong will go wrong.)把這個選擇記錄下來,只要可能,就要來重新評價。
如果沒有選擇的余地
任何時候,如果你感覺只有一種選擇(或者你毫無理由的排除了其他選擇),這可能說明:
1. 你的知識還不夠,過早進入架構設計的領域,對你不是一件好事;或者
2. 你憑借感覺做決策,實在不適合做架構師這樣的工作。
by 非魚。Technorati 標簽:
architecture,
decision,
choice