架構師主要做些什麼,你知道嗎?

小夥伴們,新年好!

感謝大家對「 IT老兵哥 」原創文章的支持頂贊,❤️❤️❤️!把有價值的知識或經驗分享給更多人,在分享中提升個人價值,這是我寫作、分享的初衷和動力,在新的一年裏我會更加努力,也希望能夠繼續獲得各位小夥伴的支持!堅持原創不易,如果文章有價值,千萬要記得手動點個「 👍 」哦!

祝大家新年在家庭、事業和生活上都有新的進步!關注「 IT老兵哥 」,賦能程序人生,我們一起加油幹!⛽️⛽️⛽️

年前我們一起聊了 程序員爲什麼要懂架構架構是什麼架構都有哪些類型 這三個話題,今天我們來看看架構師是怎樣開展工作的,他/她需要對接上下游哪些角色,以什麼作爲工作輸入,最終要對外輸出什麼產物。這些內容既有助於我們跟架構崗同事更好的協作,也可以作爲是否往架構轉型的參考,接下來我們一起揭開架構師的神祕面紗吧!

1. 架構設計的輸入是什麼?

驅動因素

軟件系統最終要構建成什麼樣,這是由項目干係人的各種要求決定的。通常,我們將這些要求歸集在產品需求文檔之中,這份產品需求就是架構設計的輸入。我們可以將這些需求劃分爲:

  • 功能需求:完成某項業務需要的功能操作,例如:共享單車客戶端軟件需要支持單車定位、掃碼解鎖等。
  • 質量需求:每項功能操作要達到什麼樣的質量要求,例如:易用性、可靠性、安全性、性能等等。
  • 商業需求:軟件系統需要以什麼樣的成本、迭代速度推向市場,如何提升產品的市場競爭力等等。

2. 架構師要對接哪些角色?

這些需求源自項目干係人、商業管理、商業競爭、法律法規、技術環境、政治約束和生命週期等不同維度的訴求,架構設計就是要區分這些需求的優先級權重,然後找出相對最優的方案來平衡滿足各個方面的訴求,最終基於這個架構設計方案研發出相應的軟件系統推向市場,並收集市場反饋輸入到下一次迭代演化當中。

干係人

因此,架構在開展工作的過程中需要對接老闆、產品、項目、開發、測試、安全和運營等各種崗位角色,他們都是架構需要關注和服務的內部客戶,他們的痛點就是架構工作的驅動因素。

3. 架構設計的輸出

架構輸出

  • 關鍵場景(Key Scenarios):分析產品需求並從中提煉出關鍵的業務場景,架構設計必須要通過這些關鍵業務場景的驗證,例如:共享單車的關鍵業務場景包括:用戶註冊登錄、支付賬號綁定、單車租借歸還等。
  • 邏輯視圖(Logical View):爲了實現關鍵業務場景,整個軟件系統從邏輯上需要劃分成多少個子系統。如果關鍵業務場景比作一幕話劇,那麼邏輯視圖就是出演話劇的主要角色,它是面向最終用戶,對功能需求負責。
  • 過程視圖(Process View):過程視圖是以邏輯視圖爲基礎的,邏輯視圖是系統的靜態結構,過程視圖是系統的動態流程。如果把關鍵場景比作故事劇本,邏輯視圖就是角色人物,過程視圖就是讓這些角色人物把故事劇本演練一遍,在該視圖中每個角色人物的分工定位和交互關係都會被明確下來,集成人員可以根據它來驗證系統。
  • 開發視圖(Development View):通過邏輯視圖、過程視圖確定了子系統的劃分和職責定位,開發視圖就是明確每個子系統採用什麼樣的技術棧來實現,包括編程語言、開發框架、分層結構、項目工程等。開發視圖主要是輸出給編程人員,編程人員基於此就可以開始編碼實現相關的工作了,所以說架構設計就是橋接需求和實現的。
  • 物理視圖(Physical View):待構成整個系統的子系統都開發完成之後,我們需要將這些子系統部署到真實的物理環境當中,物理視圖就是明確每個子系統需要什麼規格的軟硬件環境,分別部署到哪個網絡區域,不同網絡區域是否要開通防火牆,以及每個子系統需要部署多少個實例才能滿足業務需求等,它主要是面向系統工程師。

邏輯視圖

4. 架構設計的工作流程

  • 分析產品需求梳理出關鍵業務場景;
  • 基於關鍵場景劃分子系統,輸出邏輯視圖;
  • 基於關鍵場景、邏輯視圖確定業務交互流程,輸出過程視圖;
  • 基於邏輯視圖、過程視圖確定子系統技術棧,輸出開發視圖;
  • 基於邏輯視圖、過程視圖和開發視圖確定部署方案,輸出物理視圖。

今天暫時先分享到這裏,接下來我們還要繼續聊架構,敬請關注哦。堅持原創不易,如果你覺得有價值,麻煩動動手指點下文 「 👍 」按鈕,讓更多小夥伴可以看到,老兵哥會更有動力堅持分享的。另外,我後續還會分享職業規劃、應聘面試、技能提升、影響力打造等經驗,歡迎 關注 本專欄或歪信公主號 「 IT老兵哥 」
IT老兵哥

  • 軟技能-熱門文章:(首發公衆號)
  1. 2020 來了,你的 2019 曬好封存了嗎?
  2. “花式”裁員套路深,你知道嗎?
  3. 遭遇裁員,如何渡過心理危機?
  4. 如何在寒冬中找到好工作?
  5. 2C 還是 2B,跟找工作有什麼關係?
  6. 大公司 vs 小公司,你會選哪個?
  7. 記住這一點,不怕找不到好工作!
  8. 跳槽,跳還是不跳,該怎麼跳?
  9. 程序員“求包養”攻略揭祕
  10. 很努力了,爲什麼我還在原地踏步?
  • 硬技能-熱點文章:
  1. 如何設計出優美的Web API?
  2. 程序員必須掌握的性能調優 X Y Z
  3. 如何把單體式應用拆解成微服務?【上】
  4. 如何把單體式應用拆解成微服務?【下】
  5. 圖解 Spring:HTTP 請求的處理流程與機制【1】
  6. 圖解 Spring:HTTP 請求的處理流程與機制【2】
  7. 如何正確使用 Spring Cloud?【上】
  8. 如何正確使用 Spring Cloud?【中】
  9. Spring 核心技術與產品理念剖析【上】
  10. Spring 核心技術與產品理念剖析【下】
發佈了49 篇原創文章 · 獲贊 59 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章