昨天寫的一篇,關於架構師是做什麼的文章,之後就有讀者在後台問起,說要想成為架構師要具備那些方面的知識,那今天就讓我們一起來扒一扒。
曾經有這麼個段子:
乙:羨慕ing,都什麼人來了?
甲:ceo、coo、cto、all of 程式設計師,還有會計、司機都來了。
乙:哇,他們太重視你了,人才啊,這麼多人迎接你!
甲:沒有啊,就乙個人!
乙:靠,#%¥$%...
業內很多的創業型公司都是這樣,在公司發展前期,因成本有限,往往需要乙個人身兼多職,也比較鍛鍊人。架構師有時也扮演著這樣的角色,身為團隊的頂梁柱,公司的「it架構靈魂人物」,自然大小事務都可能會涉及。
那什麼是架構師?
架構師英文 architect,這個詞源於建築學。軟體工程當中的架構師和建築工程當中建築師有許多相通之處,都是負責「產品」巨集觀的架構設計。
在乙個團隊裡,架構師充當了技術 leader 的角色,不僅要完成專案的整體設計和規劃,還要帶領技術團隊一起解決實際問題,攻克技術難點,使得軟體的設計、開發、測試、發布流程得以順利完成。
下面這張圖,表達了乙個應用架構師(技術 leader)在團隊當中的角色:
需要注意的是,這張圖中的架構師只是應用架構師,所以運維和 dba 人員沒有歸入到他的管轄範圍。同時,每個公司的具體組織結構也不盡相同。
架構師都做些什麼?
1. 架構設計
架構師,顧名思義,第一職責就是在軟體設計階段,做好軟體「骨架」的設計。架構師需要把產品的需求翻譯成軟體工程的設計文件,確定各個系統與模組的邊界,評估系統的量級。
2. 技術選型
從前端到後端,從快取到資料庫,面對為數眾多的第三方元件,架構師需要作出合理的選擇。
技術沒有絕對的好壞之分,關鍵看是否適用於公司的業務場景。
3. 管理非功能性需求
滿足需求是專案開發和架構設計的根本,而管理非功能性需求則是專案的昇華。
在公司從 0 到 1 的創業階段,開發者更關注的是功能性需求,往往乙個簡單粗暴的 mvc 專案就可以搞定一切。當業務量級逐漸增大,使用者需求逐漸多樣化,非功能性需求的重要性就逐漸顯現。
非功能性需求有很多,比如:效能、可擴充套件性、可用性、安全性、可監控、靈活性、可維護等方面。
4. 攻克技術難題
架構師不只需要關注巨集觀的設計,也需要具有攻克技術細節的能力。在團隊開發過程中遇到難以實現和優化的技術問題時,架構師需要發揮技術優勢,解決系統的疑難雜症。
5. 技術人員的管理和指導
架構師不只是乙個技術大牛,也應該是乙個好的管理者,在工作中需要把較大的專案和需求拆分乙個個 story,依照每個人的情況分配給研發團隊的成員,並且在必要的時候進行技術上的培訓指導。
6. 制定技術規格說明
架構師在專案開發過程中,是技術權威。他需要協調所有的開發人員,與開發人員一直保持溝通,始終保證開發者依照它的架構意圖去實現各項功能。
架構師與開發者溝通的最重要的形式是技術規格說明書,它可以是uml檢視、word文件,visio檔案等各種表現形式。通過架構師提供的技術規格說明書,保證開發者可以從不同角度去觀察、理解各自承擔的子系統或者模組。
怎樣才能成為架構師?
1. 技術的深度和廣度
有一句話說得好,將軍就是更優秀的士兵。架構師作為程式設計師中的將軍,首先需要有足夠的技術深度,同時需要廣泛了解行業內的主流技術,以便更好地設計架構和技術選型。
2. 業務的理解
拋開業務談架構就是耍流氓。這一點對應用架構師來說尤其重要。只有對業務有了充分的理解,才能對專案的設計和擴充套件做出合理的規劃。
3. 良好的溝通能力
架構師不只是低頭做技術,更需要協調指揮團隊內的成員,也需要跨部門和產品、運營、專案經理等人員做及時有效的溝通,所以溝通能力是必不可少的。
架構師都有哪些種類?
1. 應用架構師
應用架構師是行業中數量最多的架構師,主要負責公司產品的技術架構。產品架構師需要對業務有足夠的理解,根據產品需求設計架構,在運營團隊的協助下評估量級,並管理專案的整個生命週期。
2. 中介軟體架構師
中介軟體架構師主要負責基礎框架、公共元件,通用服務的搭建。比如分布式服務框架諸如 dubbo,hsf;比如訊息佇列諸如 rocketmq,kafka。在大型網際網路公司中,往往不是把開源框架簡單「拿來」,而是研發出符合自身業務的企業中介軟體。
3. 基礎設施架構師
基礎設施架構師負責伺服器資源、網路資源、資料庫等基礎設施的建設;以及持續整合工具、持續部署工具的搭建。
以上所說的三種,只是架構師最基本的分類。一些特殊領域也有著專門的架構師,比如網路安全架構師、大資料架構師等等。
·end·
程式設計師的成長之路
路雖遠,行則必至
成為一名架構師得學習哪些知識?
昨天寫的一篇,關於架構師是做什麼的文章,之後就有讀者在後台問起,說要想成為架構師要具備那些方面的知識,那今天就讓我們一起來扒一扒。曾經有這麼個段子 乙 羨慕ing,都什麼人來了?甲 ceo coo cto all of 程式設計師,還有會計 司機都來了。乙 哇,他們太重視你了,人才啊,這麼多人迎接你...
怎樣成為一名架構師
怎樣成為一名架構師 一 架構師要具備什麼素質 1 要有良好的溝通協調能力,能夠促進團隊共同合作。2 技術前瞻性,需要洞察新技術並加以分析,如果新技術適用,在穩定可用的基礎上,能通過最小的改動,將其應用到專案。3 需要持續學習的心態,時時刻刻對技術的熱衷。4 精通業務,設計的架構要基於業務。二 架構師...
緣何成為一名雲架構師
之前,我們曾經談論過 為何 openstack 是開啟it 職業生涯的不錯的方式。但是,它的價值在 如何從一名傳統的 it基礎架構人員轉型成為一名雲架構師?在最近的亞特蘭大 openstack 會議上,我參加了乙個專門分享進入 openstack 領域經驗的分享會。會上談論了 openstack a...