架構師主要是做什麼的?

Misaya7914


這裡以軟件架構師為例說明,軟件架構師是從程序員一步步幹起來的,也是大多數程序員夢寐以求的。混到架構師級別,一般需要的綜合能力比較強,需要做的事情比程序員也要多。

確認需求

首先,架構師需要徹底弄清楚產品需求,才能進行下面的工作。這需要架構師和產品經理、業務需求方不斷地溝通,挖掘用戶需求,搞清楚用戶到底需要的是什麼,能夠做到對現有的需求整理透徹,並且具有下一步用戶想要什麼的判斷能力。

系統分解

當需求確定後,架構師需要將用戶產品需求轉換為軟件需求。在構建軟件系統模型的時候,需要對系統進行分解,比如將整個系統進行縱向分解,分解成各組件與子系統;比如還可以進行橫向分解,將系統分解成不同的邏輯層或服務後,對邏輯層進行分塊,確定層與層之間的關係。

技術選型

這個階段考驗的是架構師的架構能力、綜合技術能力、對前沿技術的掌握能力等。


系統分解後,需要進行技術選型。

比如前端是用vue、React還是Angular;

比如後端框架是選擇SpringCloud全家桶還是使用阿里系dubbo組合拳;

比如緩存是用Redis還是其他;

比如數據庫是用關係型數據庫還是使用noSql;

比如線上節點需要部署多少;

。。。。。

而這一切都要基於用戶需求、用戶使用量等。並不是根據自己的愛好隨意選擇的,否則線上出現了問題導致系統崩潰,這是不能容忍的。

制定技術規範

“約定大於配置”,程序員水平不一,編碼風格千秋,所以要制定一套開發規範,這樣對進度的把握以及以後的運維都是非常有好處的。

要和涉及的程序員保持溝通,以確保他們在自己的開發任務下領會到架構師的設計意圖。

指導員

要對開發過程中程序員遇到的問題做到及時的溝通指導,遇到的技術難題要隨時攻關。

佈道師

軟件行業發展日新月異,新技術的誕生說來就來,所以架構師要時刻保持對新技術的熱情,善於鑽研新技術,並且能夠將新技術引入到當前的團隊中。



當然,架構師的職責不僅上面所述,還有其他的,比如彙報工作等。

所以對於一個合格的架構師,他們的綜合能力需要全面。


殘缺的孤獨君


架構師其實有很多種的,有業務架構,技術架構之分。業務架構很好理解了,就是當前的業務為誰服務,都需要做什麼,滿足什麼需求等等這樣的定義。技術架構其實還有軟件架構,網絡架構等等。

從你的提問來看,我們暫且認為你說的是軟件架構師。那麼軟件架構師都需要做什麼呢?最主要的,他先要了解業務,而且是深入的瞭解業務,包括業務的使命,所有者的期望,使用者的期望,業務未來的發展方向等等。當各方面瞭解清楚後,才能進行技術方面的工作。這裡麵包括了系統怎麼劃分模塊和服務,各個模塊和服務應該用什麼語言,什麼框架來實現。各個服務間調用的形式是http還是二進制,數據庫怎麼選擇,數據表怎麼定義等等這些吧,在架構設計中還要考慮到系統未來的擴展和維護,當然也要包括日誌,監控等等周邊的非功能性需求。而且還要保證自己的技術選型和架構設計師可實現的,當前團隊不會有太大的阻力。還要識別系統開發過程中可能出現的風險,怎麼規避,怎麼解決。

理論上來說,架構師在編碼過程中還需要時刻與開發人員溝通,解決問題,升級設計方案等等。其實架構師就是開發的領頭人,描述清楚方向和實現的方法,並且保證開發人員在自己規定的範圍內解決或實現業務。


分享到:


相關文章: