架構師與系統架構

最近去了一家公司面試架構師的職位,去之前也是沒有詳細考慮過到底架構師是做什麼的,只是估計可能會有一點難度,最終將手到擒來,然後又是在工資上談不攏.據我所見過的一些公司的架構師,工作重點各個相同,工作內容全集大概如下:
--解決公司項目中的一些技術難題.
--提供技術方案,並參與公司的投標.
--帶領一些高手開發一套通用框架或組件庫.
--協助招聘技術人員.

而這些工作本身到底有多難,完全取決於公司的狀況.即便是純粹的軟件公司之間,對此定義也不盡相同.做銀行,電信軟件的企業可能會要求高,而做這類軟件外包的企業,要求通常會高得更多.
整個面試過程非常愉快, 很少有這樣的感覺了.三位面試官都各有所長,看問題都很透徹.尤其是做技術面試時,對方不斷地施加壓力,我的大腦必須快速運轉,分析再分析.我相信對方更想知道我是如何思考的,以確定工作經驗是不是足夠豐富,腦子夠不夠聰明.我喜歡這樣的談話方式,內容不是最重要的,整個過程纔是重點.
這次面試最後無疾而終,成爲我不小的遺憾.不過,就像以往一樣,每次新的嘗試都會帶來豐碩的成果.在這裏我想對三位面試官真心說,"多謝!", 這次面試是我人生中寶貴的一堂課.一方面,清楚知道自己到底有幾斤幾兩.尺有所短,寸有所長,儘量讓該長的再長一些,讓短的不那麼短,不斷激發自己的潛力.另一方面,我也對架構師和系統架構有一個比較清晰的認識,明確了自己這一兩年的目標.就我目前的狀況,相信還會再去那家公司試試.

架構師的能力既要有廣度也要有深度,技術方面:
--軟件開發生命週期,從需求,設計到實現和測試都有一定的瞭解.
--過程,重量級(RUP/CMM)和輕量級(XP/Scrum)
--框架,JEE/.Net
--工具,用來建模,設計,溝通...(UML, ER)
--操作系統,Windows系列及Linux/Unix系列
--服務器,App Server, Web Server. IBM WebSphere, Oracle WebLogic, JBoss, Tomcat, Apache...
--硬件知識,各大廠商提供的機器型號及配置,在不同應用環境下的性能.
--網絡知識,網卡,路由,網絡佈局.

非技術方面:
--平衡和決策能力;
--培訓和講解能力;
--劃分層次;
--制定規則和標準;
--溝通能力;
--領導能力/問題解決型領導;
--在截然不同的抽象層次上概念化解決方案;(這一點尤其關鍵)

看到了吧,架構師不是個容易活,而且多數公司都不需要這麼強的人.在多數情況下,每個公司在自己特定的業務領域已經有比較可靠的架構原型,項目對架構的要求並沒有那麼高,或者範圍相對小一些.不過,這並不妨礙我以此爲目標.以前我的目標沒有這麼明確,還好一直在朝這個方向走.看來我的運氣不錯.

系統架構的概念可大可小,基本的層次如下(取自知識大金礦--MSDN):
領域--公司做爲一個黑盒,以業務的外部用戶的視角爲業務建模,爲與業務外部用戶的交互建模
業務處理--系統爲黑盒, 爲以實現領域級業務交互爲目的的業務過程建模,以系統的外部用戶的視角爲業務過程建模
邏輯--系統設計,系統用戶的視角爲業務建模
物理--爲實現的物理結構建模,協議,頁面,數據表等

如果企業的業務相對複雜,可以在此基礎上進行擴展.通俗一點講,就是首先關注企業的客戶如何看待企業提供的服務的,然後理清企業內部的業務流程,明確企業對系統的期望,再就是從系統的各個參與者出發明確系統功能.再就是具體的物理架構.看起來非常像需求建模,實際上也確實是需求決定了系統架構.所以,架構包含了兩方面的內容,架構的定義和架構的物理實現.

就目前情況來看,我的理論水平還是需要不斷提高,通過通用的原則解決通用問題的各種變種。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章