1. 程式人生 > >如何才能成為一名優秀的架構師

如何才能成為一名優秀的架構師

對於工作多年的程式設計師而言,日後的職業發展無非是繼續專精技術、轉型管理和晉升架構師三種選擇。那麼程式設計師如何才能晉升為優秀的高薪架構師? 優秀架構師需要具備怎樣的素質 擔任全棧技術架構師三年的劉先生表示:「架構師雖然經常需要做一些分工的工作,涉及到一些管理層面,但在我看來,它並不算完全的管理,更考驗溝通能力和他的設計能力。」 企業無論是招哪一類架構師,都會要求他們具有多年從業經驗,有過專案開發經歷,精通多門程式語言且熟悉資料庫。總結出架構師的主要職責為以下四點—— 1 確認需求 架構師要懂得使用者需求,理解使用者真正想要什麼,這使得架構師必須要和分析人員不斷溝通,反覆確認需求規格說明書,以此來保證他精準清楚使用者需求。 專案經理劉先生在受訪時說:「架構師會與很多人溝通,例如開發人員,例如我們專案經理,有時甚至是使用者本身。架構設計的目的很明確,目的是什麼呢?挖掘使用者需求。」 2 系統分解
在架構師認可需求規格說明書後,架構師已明確使用者需求是是什麼,這時候便看架構師的分解能力了。通過100offer入職的全棧技術架構師周先生從「縱向分解」和「橫向分解」和我們說明了系統分解是什麼—— 「一般分為縱向分解和橫向分解,縱向分解是將整個系統分層,從而將整體系統分解成下一級的子系統與元件。橫向分解是在系統分解成不同的邏輯層或服務後,對邏輯層進行分塊,確定層與層之間的關係。」 3 技術選型 在系統分解後,架構師會最終形成軟體整體架構,接下來,架構師的職責是技術選型。 「前端到底用瘦客戶端還是富客戶端呢?資料庫是用MySQL還是MSSQL又或是Oracle呢?」架構師張先生在接受採訪時說,「在瞭解使用者需求後,分解完系統後,技術選型是非常重要的環節,提出各個方向,我再進行評估。不過,很多人都以為架構師是有決定權的,其實不是,架構師沒有拍版的權力,決定由專案經理來做。 」 架構師在技術選型階段會提供參考資訊給專案經理,專案經理再從預算、進度、人力、資源等各方面情況來權衡,最終確認。 4 制定技術規格說明
架構師在專案開發過程中是「靈魂人物」,並且要具備協調組織能力和懂得人員分工。 在制定技術規格說明階段,架構師要協調起所有的開發人員,架構師通常會用技術規格說明書與開發人員保持溝通,讓開發人員能從各個視角去觀測、理解他們負責的模組或者子系統,確保開發人員能夠按照架構意圖實現各項功能。 在瞭解架構師的職責後,再來看看架構師該具備什麼能力才能成為一家公司中的「靈魂人物」。我們先來看一下調查資料—— 37%的受訪人認為架構師的設計能力最重要,技術實力重要度排在第二佔了24%,溝通能力則排在第三,佔比14%,管理能力在大多數架構師眼中並不是最重要的,僅佔了7%。此次,我們詳細分析排在前三的能力。 1 設計能力-擅長整合分析
架構是過程,並非結果。 架構是架構師洞察內在結構、原則、規律與邏輯的過程,架構師要做到清晰理解系統,以及簡潔描述,這是分析整合的能力。 一個架構師必須具備極強的分析能力,要做到根據產品宗旨和目標,分析清楚產品定位以及產品業務,再整合利用現有的技術領域,找出最佳方案,實現產品概念。 2 技術實力-實現產品規劃 架構師首先要將程式碼寫的清晰易懂,要能夠實現功能,做到沒有Bug,這要求架構師必須具備至少熟練掌握一門語言。 這是最重要的,每一名出色的架構師,必定是一位優秀程式設計師。架構師並不是純粹的管理崗位,對那些愛寫各式文件、畫流程圖、脫離程式碼、只說不做、高高在上的架構師,程式設計師們通常會稱他們為——PPT 架構師。 不懂程式設計的架構師的職業生涯必定是短暫的,無論如何都不可本末倒置,要想實現自己的職業規劃,不能荒廢自己本身的技能,技術是架構師賴以生存的最基本能力。 所以,不推薦不熱愛程式設計的人去做架構師,對於團隊工作和個人發展來說,都會帶來糟糕的後果。 3 溝通能力-能夠橫向溝通 架構師必須參與專案開發全過程,包括確認需求、系統分解、架構設計、技術選型、制定技術規格說明、系統實現、整合測試和部署各階段,在這一系列過程中,架構師會與各部門溝通交流。 一個產品會有多部門合作,架構師在其中的溝通極為重要,直接影響產品進度與質量。架構師不僅要與開發人員溝通,也要和專案經理、分析人員甚至使用者溝通,來實現產品的各種可能性。 所以,對於架構師來講,不僅有技術方面的要求,還有能夠橫向溝通的要求。 架構師的發展現狀 成為一名架構師是程式設計師的職業發展道路之一,架構師的工作前景也是程式設計師們所關心的事情,100offer採訪了數名架構師,做出「架構師的發展現狀」的相關分析。首先,我們來看一看架構師們想去怎樣規模的公司—— 可以發現,初創公司並不受到架構師們的青睞,架構師們更偏向進入具有一定規模已有成熟產業線的公司進行發展。 接下來,我們收集了100offer上近一年來架構師所收到的面試邀請數—— 能夠看出,最近一年來,企業對架構師的需求量是在逐步上升的。在瞭解企業需要後,我們再來看一看架構師的收入—— 以上資料是兩年來通過100offer入職的架構師年薪,20萬以下和60萬以上各佔3%,20萬至30萬、30萬至40萬各佔22%,40萬至50萬佔比最大,高達34%,從現狀年薪來看,架構師屬於高薪職業。 高薪職業往往都擔著巨大壓力,對於架構師而言,他們在工作中面臨的最大困難又是什麼呢—— 協調人際利益佔了35%,管理分工佔了26%,這些與「人」相關的內容成為架構師在工作中面臨的最大困難。對於能成為架構師的人來說,只要不是PPT架構師,基本都具備了對架構師而言最重要的設計能力和程式設計能力,所以最重要的有時並不是最困難的。 他們必須思考清楚使用者最需要的是什麼,同時協調好專案內部人員的利益關係,對於很多不擅於打交道的程式設計師而言,協調和管理的確成為了他們最頭疼的問題。 受訪的架構師們表示,面對協調和管理所帶來的困擾時,不能著急,協調人員之間的利益、管理和分配工作量本身就是一件需要大量實踐才能有成效的事情,成功的架構師們往往會選擇從減壓做起,而協調與管理,在他們看來,是一件水到渠成的事。 無論是企業需求,還是薪資水準,從現狀而言,架構師的各方面待遇都是較好的,同樣,多部門協調和多線部署也給他們帶來了巨大壓力。不難看出,國內架構師的發展現狀是較為樂觀的,架構師無論是地位、薪酬還是未來發展,都具有著優勢。 不是每一位程式設計師都必須轉管理層成為CTO甚至CEO,也不是每一名程式設計師都必須要成為架構師,每名程式設計師都有著不同的發展方向。 從程式設計師到架構師,是很大的職業轉變,也是不少程式設計師的職場規劃路線。 本次受訪的架構師,大多數都是在工作十年後再從程式設計師轉型為架構師,幾乎所有高薪架構師,都懂得多門主流程式語言如C++、Java、python等,才能在架構系統時沒有侷限性,也可以使用如MySQL、sqlserver、sybase、jracle、infomix等多種資料庫,他們還了解檔案系統特性,如NFS、GFS,NTDFS、XFS等,甚至做過幾年windows開發,是這些經歷,才造就了一名優秀的架構師。