嗨,你好。很高興看到并回答此問題。
如果認同我的回答,麻煩點個贊哦~~
我是一名從業十余年coder,2010年通過系統分析師考試,結合我的理解回答一下吧。
我于2005年參加工作,之后才開始考軟考證書,軟件設計師和系統分析師,兩個證都是在工作五年內考過的。其中:系統分析師證、系統設計師證對于工作和項目經驗有一定要求。
下面我分別從技術層面和業務層面來回答一下。
看完了下面的內容,你就能夠進行”對標“,知道一個架構師最核心的能力在哪了,就能明白“怎么樣才能稱為架構師”。
技術層面
架構師:從名字上看就是完成系統的結構設計,但這個結構設計并不是這么簡單的。
架構師的主要工作是根據一個系統的業務完成頂層設計,需要想清楚系統【當前有什么】【想要什么】【未來想成為什么】幾個問題的回答,制定符合“要求”并且可落地執行的方案。
同時,還要做好技術選型、難題攻關等,這中間可能涉及了開發語言、服務器、網絡、數據庫等多個維度的問題。
架構師最重要的能力就是:能夠根據現有環境,設計出可執行和符合未來規劃的方案。
現在一些大廠(例如淘寶等)的架構是公開的,但是絕不能直接生搬硬套。因為在人力、物力方面,各個公司之間是不對等的,特別是成本方面的考慮。
舉個例子:開發一個新聞資訊類的網站,公司A希望投入500萬用于IT支出,希望面向全國推廣。那公司A的架構上就要考慮CDN,考慮云存儲、多節點部署等。公司B希望投入10萬,只做本地資訊,那架構上就是本地IDC,高帶寬,本地數據庫(分離、互備)等。
上面只是從IT支出成本方面考慮,另外還有一個重要的點就是"團隊技術"考慮。
架構師在做好了設計以后,能不能推行和執行下去,這個和團隊密切相關。首先要考慮團隊的技術實力,在哪個技術方向和領域具有較好的功底,對于選型的技術難題攻關以及對未來系統維護、升級等方面的處理能力。
架構師在設計時要考慮高并發、分布式、高性能、高可用、可擴展、好維護、系統安全等方面因素。
例如微服務架構設計、緩存系統設計、OAuth認證、消息中間件、監控中間件、配置中心等。
以上的這些都需要在成為架構師的道路上積累經驗。
業務層面
很多人認為,對于程序員,35歲是一個坎,不知道以后如何發展,做系統架構設計(架構師)其實是一個水到渠成的發展進程。
成為架構師其實是對一個綜合能力的考查。
其中:能夠理解和熟練掌握業務是基礎。
合理的即是最好的。
系統設計沒有最好之分,只有是否合理之分。
不同系統業務不同,業務發展規劃不同,所以,架構設計上要滿足這些需求。
做為架構師就需要一定溝通能力,需要一些行業方面的經驗和背景。
如果是一直在某一行業,則對這個行業的系統“深度”上會有較好理解;
如果是涉及多個行業,則是對架構“廣度”上有較好基礎。
總結
通過以上分析,你肯定可以發現,對架構師的能力要求中,技術只是一個層面。
架構師的一些工作職責和項目經理、技術總監有一部分是重合的。
所以,成為架構師,后續可以快速成為技術總監或CTO。
努力吧,少年!
我是一名Java全棧開發工程師、系統架構師,從業15年。曾帶領小團隊完成多個數百萬級項目。我正在寫一些關于互聯網行業及開發技術方面的文章,關注我,你一定會有所收獲。
如果有項目開發、行業及求職方面的問題,都可以在評論區留言或私信我。(關注后私信我,向你免費分享行業級學習資料)