讀古今文學網 > 程序員必讀之軟件架構 > 軟件架構師是通才型專家 >

軟件架構師是通才型專家

我所知大部分最優秀的軟件設計師都有軟件開發背景。這並不意味著他們是團隊中最好的程序員,但他們能夠在底層細節和大局之間切換。他們還有著深厚的技術積累,以及從多年軟件構建的經驗中獲得的廣闊的知識面。但他們不能(也不會)總是知道一切。再加上也很難找到一個只使用單一技術棧的軟件系統。我在職業生涯中,見過一些採用混雜技術棧的系統,包括:

  • 針對多個Oracle數據庫的微軟.NET桌面客戶端;
  • 通過一組Java EE網絡服務從Oracle數據庫拉取數據的微軟ASP.NET網站;
  • 從Java編寫的REST服務拉取數據的iOS和Android移動應用;
  • 用微軟.NET或Ruby編寫的多個服務構成的微服務架構;
  • 從微軟Dynamics CRM系統拉取數據的微軟ASP.NET網站;
  • 通過微軟.NET/Windows通信基礎服務拉取數據的微軟SharePoint網站;
  • 與SAP集成的Java EE 網絡應用程序;
  • ……。

雖然一般性的設計知識、技巧、模式和方法通常適用於許多不同的技術,但不明白如何將其成功應用在底層細節上可能會導致問題。這是否意味著對任何特定軟件系統中使用的所有技術,軟件架構師都應該是專家?不,合作才是關鍵。找到那些知你所不知的人,與他們緊密合作。沒有誰說軟件構架的角色不能分享,而且欣然認識到你的知識差距往往是創造更和諧的工作環境的第一步。結對編程有好處,那麼為什麼不能結對架構?