在项目组也有段时间了,你对系统架构师了解过吗?
什么是架構師?
????系統架構師是一個最終確認和評估系統需求,給出開發規范,搭建系統實現的核心構架,并澄清技術細節、掃清主要難點的技術人員。主要著眼于系統的“技術實現”。因此他/她應該是特定的開發平臺、語言、工具的大師,對常見應用場景能給出最恰當的解決方案,同時要對所屬的開發團隊有足夠的了解,能夠評估自己的團隊實現特定的功能需求需要的代價。系統架構師負責設計系統整體架構,從需求到設計的每個細節都要考慮到,把握整個項目,使設計的項目盡量效率高,開發容易,維護方便,升級簡單等。
架構師并非必需品?
在軟件開發剛興起那一會,哪有聽說過架構師,更沒有說大學中有系統架構方面的課,做項目的時候也很少有專門的架構師角色。一般來講,系統比較簡單的話,并不一定要有架構師,當系統更為復雜,才需要有人在更高的視角上去關注整體性的東西,這也是系統規模不斷發展的結果。 所以,我們可以認為,架構師并不是一個必需品,甚至不同公司架構師的職責都不太一樣,并沒有一個非常明確的定義,但整體來講,架構師需要關注整個體系中方方面面的東西,還需要去解決一些關鍵性的技術難點,并需要有更為長遠的考慮,這個是共識。
架構師與工程師之別
架構師與工程師之間的差別并不在于年紀 ,而是在于視角的不同以及各方面積累的差別。
首先是意識。作為架構師,不能僅僅關注怎么去實現一個功能,還得去琢磨為什么這么做、怎樣才能做得更好、應該在什么場景采用什么樣的技術方案等問題。另外還得去關注測試、部署、項目管理的方式等方面,甚至要去了解用戶的需求、公司業務的需求。如果一直考慮這些事情,時間長了、經驗多了,就會有比較好的整體概念或視圖在腦中,綜合素質會得到提升,明白功能只是最基本的,系統的可用性、穩定性、可擴展性更為重要。
其次是積累。IT技術一直在演進,全世界無數人的不斷研究與實踐成就了技術的提升與進化。作為技術人,需要關注當前最新的技術、架構、解決方案、技術理念等,理念可以用不同的技術來實現,也一個不斷進化的過程。而作為架構師,承擔的是更重要的角色,他的決定會影響到更大的團隊或體系,所以就需要有足夠多的相關知識和技能,以及足夠廣的視角,而這些都需要架構師平時不斷的積累??磿?#xff0c;技術相關的大概一半,另一半主要是社科類、經濟、歷史、管理之類的,對提高架構思維很有幫助。
再次是責任感。之前提到,架構師承擔的是更重要的角色,他的決定會影響到技術選型、系統架構、具體實現的方案甚至系統發展的方向,所以架構師需要有很強的責任感,要對技術團隊負責,需要發揮自己的影響力,做很多溝通、協調、支持的工作。
最后是興趣。在我看來,人是受限于他的性格、興趣、天分這些因素的,會不自覺地去靠近他更喜歡、更擅長的方向。所以,到底是當工程師還是架構師,或者其他角色,也是要看興趣的,有的人就是喜歡解決技術難題,就是喜歡具體的模塊實現,不想牽扯太多精力去考慮其他的方面,那么也不見得非要當架構師,只是分工不同,業界也有技術專家、研究員這樣的角色。
架構與管理相通
之前架構師大會上經常有人說,沒有最好的架構,只有最合適的架構。確實如此,作為架構師,很多時候,技術上的東西可能跟程序員差不多,但差別就在于能不能以更大更廣的視角去看待問題,而非僅從自身角度出發。
視角變大之后,所要關注的東西就會變多,變量、變數也會更多,很難理想主義,很多時候都需要做出妥協或者說平衡,到最后就會發現,架構和管理在很多時候是相通的。
管理是在一個有限資源、確定時間點、明確目標的情況下,盡可能達成目標,過程中需要考慮輕重緩急,需要隨時調整以適應現實變化,以完成目標為首要考量。
架構也是如此,需要考慮的是宏觀上的方向性的問題,是各個部分之間的平衡關系,是如何配合才能達成最佳效果,而非僅僅是短期目標而達成,也不必糾結于細節的完美。
這些年,管理、架構都發展出了很多的理論,雖然行業、環境一直在變,但卻也不能直接斷定它們是不是合適,需要學習的是其中的思維方式,具體的問題具體分析。
架構需要具備及能力
(1)技術能力
技術能力,不用置疑肯定是最重要的。技術能力弱的架構不是一個好架構。所以,你需要知道所有主流技術的基本原理、應用場景,及快速解決問題的能力。所以,架構師必須要有見識,所需知識面肯定是要不斷拓展的。你需要清楚在什么樣的場景用什么樣的技術比較合適,并知道可能存在什么樣的風險。來了需求,你腦袋是空的,不知道用什么技術這是最可怕的。
(2)架構能力
這個可以表現為抽象能力、整體規劃能力、及設計能力。你需要照在業務的角度進行系統分解、技術選型、架構搭建,以及規范制定。架構出來了至少可以滿足最近的發展,或者可以很方便對現有架構進行擴容。有人說架構不需要懂業務,我面試過的就有明確表示不做業務架構。當然有方面的架構師,如中間件架構師,運維基礎設施架構師等。但一般的后端架構師都是需要了解業務,不理解業務你如果進行系統分解,服務劃分,及根據不同業務作出不同的架構。技術都是為業務服務的,不站在業務的角度設計架構,那架構就是空談。
(3)溝通能力
這個看起來不是最重要的,其實也非常重要。作為一個優秀的架構師,你需要清楚的知道客戶的需求,需要不斷和需求人員進行溝通,以達到客戶真正的目的。不論是不是架構師,任何一個職場人,提高自己的溝通表達能力無疑是不可或缺的。有一句話怎么說的,領導就喜歡拍馬屁的。做領導的大多不是技術特別牛的,但溝通能力肯定是很好的。
這也映襯了我們上面說的,架構師與工程師之別,架構與管理相通的說法!
參考文章:
https://www.cnblogs.com/davidwang456/articles/5258002.html
https://baike.baidu.com/item/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E5%B8%88/3473607?fr=aladdin
總結
以上是生活随笔為你收集整理的在项目组也有段时间了,你对系统架构师了解过吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10 安装程序错误,the set
- 下一篇: Sublime Text 的下载巨慢的问