您好,登錄后才能下訂單哦!
架構師對于許多程序員來講,是職業發展的終極目標。很多人都不太了解架構師,關于架構師的工作職責包括很多方面,比如產品實現、模塊分解、代碼重構、技術選型和性能優化等等。大家只有對架構師的工作職責有一個系統全面的把握和理解,才能有可能成為一名優秀的架構師。下面我們一起從架構師的工作職責出發,看一看什么才是真正的優秀架構師吧。
1、架構師的日常工作內容:
(1)開會溝通討論:這個會可能是需求會,也有可能是設計評審會等。因為架構師需要針對軟件需求中的業務場景和流程,功能性需求進行功能性架構設計。因此,溝通和討論要占工作的很大一部分。
(2)技術架構設計:當然如果不是資深架構或技術總監,那么未必會設計一套全新的架構,往往是在現有基礎上改進,比如做擴容,分庫分表,上新的日志監控系統。這方面,架構師往往會做個案例,比如在一臺linux上搭個日志系統,把步驟寫清楚,讓開發依樣畫葫蘆。對于資深架構而言,可能得重頭開始設計,或者作出調整技術組件等的決定,這一般也先在部分系統或部分機器上做試驗。
(3)解決技術問題:這些問題未必是架構級別的,但只要是高級開發解決不了的問題,架構一般都得上,誰讓架構是大牛呢?如果是架構組件方的問題,比如配置或部署方面的問題,更是架構師職責以內的工作內容。
2、架構師的主要工作職責:
(1)產品實現:在接到產品設計需求之后,架構師要依據對原定架構意圖的理解去實現各項功能。
(2)模塊分解:在項目開發過程中,架構師要將完整的系統拆分為子系統和組件等模塊,形成不同的邏輯層或服務,確定各層的接口、層與層相互之間的關系,對整個系統分層進行“縱向”分解,對同一邏輯層分塊進行“橫向”分解。
(3)代碼重構:重構是對一個項目系統內部的結構性調整,在系統原有的功能的前提下,提高程序的可理解性,可行性,降低修改這個系統的成本,從而提升程序的運行性能。
(4)技術選型:通過模塊分解,最終形成了軟件的整體架構,依據整體架構需要進行技術選型。
(5)性能優化:在整個項目研發過程中,架構師還需要做好系統的性能優化。當然前期不用考慮性能優化,可以多做一些編碼級別的優化。還有做好日志的監控以及各種異常的處理。
3、架構師的核心能力:
(1)編碼能力:架構師要和開發團隊一起,進行編碼,可能架構師不一定細究到任何細節,常見的實踐是,系統最困難最核心最關鍵的部分往往由架構師親自操刀。因此編碼能力對于軟件架構師來說是必備的,如果不是寫過N年代碼的優秀程序員,一定不是好的架構師。
(2)理解業務:架構師需要理解業務的基礎上,轉換可被研發理解的實現方案,因此業務理解能力是架構師的必備技能。通常來說一個資深的業務架構師,對業務有足夠的敏感度和深入的認知和積累,能夠清楚地知道自己的設計能給公司帶來多大的業務影響,應該能大概預判業務未來的發展趨勢,以便在系統的可擴展性上留好一定的空間。
(3)架構能力:架構是軟件架構師洞察內在結構、原則、規律與邏輯的過程,架構師要做到清晰理解系統,以及簡潔描述,這也可以說是分析整合的能力。
(4)風險評估:架構師與技術高手的區別在于,架構師不僅局限于如何調用、如何并發等架構細節,還跳出三界,考慮未來問題和潛在風險的應對之道。
(5)領導統籌:架構師參與項目開發的全過程中,需要經歷確認需求、系統分解、架構設計、技術選型、制定技術規格說明、系統實現、集成測試和部署各個階段,架構師與各部門溝通交流的領導能力就顯得尤為重要。
架構師需要具備哪些核心能力?簡單來講,就是既要掌控整個項目的研發又要解決一些具體的技術問題。因此,毫不夸張地說,架構師是一個項目開發過程的靈魂人物。架構師的能力要求使得成為架構師的道路十分困難,因此除了在日常的工作中不斷積累經驗,還有額外抽出時間來學習,畢竟高級開發的職位做的再好也不能成為架構師。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。