最近去了一家公司面試架構師的職位,去之前也是沒有詳細考慮過到底架構師是做什麼的,只是估計可能會有一點難度,最終將手到擒來,然後又是在工資上談不攏.據我所見過的一些公司的架構師,工作重點各個相同,工作內容全集大概如下:
--解決公司專案中的一些技術難題.
--提供技術方案,並參與公司的投標.
--帶領一些高手開發一套通用框架或元件庫.
--協助招聘技術人員.
而這些工作本身到底有多難,完全取決於公司的狀況.即便是純粹的軟體公司之間,對此定義也不盡相同.做銀行,電信軟體的企業可能會要求高,而做這類軟體外包的企業,要求通常會高得更多.
整個面試過程非常愉快, 很少有這樣的感覺了.三位面試官都各有所長,看問題都很透徹.尤其是做技術面試時,對方不斷地施加壓力,我的大腦必須快速運轉,分析再分析.我相信對方更想知道我是如何思考的,以確定工作經驗是不是足夠豐富,腦子夠不夠聰明.我喜歡這樣的談話方式,內容不是最重要的,整個過程才是重點.
這次面試最後無疾而終,成為我不小的遺憾.不過,就像以往一樣,每次新的嘗試都會帶來豐碩的成果.在這裡我想對三位面試官真心說,"多謝!", 這次面試是我人生中寶貴的一堂課.一方面,清楚知道自己到底有幾斤幾兩.尺有所短,寸有所長,盡量讓該長的再長一些,讓短的不那麼短,不斷激發自己的潛力.另一方面,我也對架構師和系統架構有乙個比較清晰的認識,明確了自己這一兩年的目標.就我目前的狀況,相信還會再去那家公司試試.
架構師的能力既要有廣度也要有深度,技術方面:
--軟體開發生命週期,從需求,設計到實現和測試都有一定的了解.
--過程,重量級(rup/cmm)和輕量級(xp/scrum)
--框架,jee/.net
--工具,用來建模,設計,溝通...(uml, er)
--作業系統,windows系列及linux/unix系列
--硬體知識,各大廠商提供的機器型號及配置,在不同應用環境下的效能.
--網路知識,網絡卡,路由,網路布局.
非技術方面:
--平衡和決策能力;
--培訓和講解能力;
--劃分層次;
--制定規則和標準;
--溝通能力;
--領導能力/問題解決型領導;
--在截然不同的抽象層次上概念化解決方案;(這一點尤其關鍵)
看到了吧,架構師不是個容易活,而且多數公司都不需要這麼強的人.在多數情況下,每個公司在自己特定的業務領域已經有比較可靠的架構原型,專案對架構的要求並沒有那麼高,或者範圍相對小一些.不過,這並不妨礙我以此為目標.以前我的目標沒有這麼明確,還好一直在朝這個方向走.看來我的運氣不錯.
系統架構的概念可大可小,基本的層次如下(取自知識大金礦--msdn):
領域--公司做為乙個黑盒,以業務的外部使用者的視角為業務建模,為與業務外部使用者的互動建模
業務處理--系統為黑盒, 為以實現領域級業務互動為目的的業務過程建模,以系統的外部使用者的視角為業務過程建模
邏輯--系統設計,系統使用者的視角為業務建模
物理--為實現的物理結構建模,協議,頁面,資料表等
如果企業的業務相對複雜,可以在此基礎上進行擴充套件.通俗一點講,就是首先關注企業的客戶如何看待企業提供的服務的,然後理清企業內部的業務流程,明確企業對系統的期望,再就是從系統的各個參與者出發明確系統功能.再就是具體的物理架構.看起來非常像需求建模,實際上也確實是需求決定了系統架構.所以,架構包含了兩方面的內容,架構的定義和架構的物理實現.
就目前情況來看,我的理論水平還是需要不斷提高,通過通用的原則解決通用問題的各種變種。
系統架構 系統架構師
一 什麼是架構師 是乙個既需要掌控整體又需要洞悉區域性瓶頸並依據具體的業務場景給出解決方案的團隊領導型人物。架構師需要能夠識別定義並確認需求,能夠進行系統分解形成整體架構,能夠正確地技術選型,能夠制定技術規格說明並有效推動實施落地。按 togaf 的定義,架構師的職責是了解並關注實際上關係重大但未變...
系統架構師
職業定位 系統構架,是對已確定的需求的技術實現構架 作好規劃,運用成套 完整的工具,在規劃的步驟下去完成任務。相應地,系統架構師 又稱企業架構師或者 系統設計師 是乙個最終確認和評估系統需求,給出開發規範,搭建系統實現的核心構架,並澄清技術細節 掃清主要難點的技術人員。他 她主要著眼於系統的 技術實...
系統架構師
職業定位 系統構架,是對已確定的需求的技術實現構架 作好規劃,運用成套 完整的工具,在規劃的步驟下去完成任務。相應地,系統架構師 又稱企業架構師或者 系統設計師 是乙個最終確認和評估系統需求,給出開發規範,搭建系統實現的核心構架,並澄清技術細節 掃清主要難點的技術人員。他 她主要著眼於系統的 技術實...