小伙伴們,新年好!
感謝大家對「IT老兵哥」原創文章的支持頂贊,??????!把有價值的知識或經驗分享給更多人,在分享中提升個人價值,這是我寫作、分享的初衷和動力,在新的一年里我會更加努力,也希望能夠繼續獲得各位小伙伴的支持!堅持原創不易,如果文章有價值,千萬要記得在手動點個「推薦」哦,^_^
祝大家新年在家庭、事業和生活上都有新的進步,我們一起加油干!??????
年前我們一起聊了 程式員為什么要懂架構、架構是什么 和 架構都有哪些型別 這三個話題,今天我們來看看架構師是怎樣開展作業的,他/她需要對接上下游哪些角色,以什么作為作業輸入,最終要對外輸出什么產物,這些內容既有助于我們跟架構崗同事更好的協作,也可以作為是否往架構轉型的參考,接下來我們一起揭開架構師的神秘面紗吧!
1. 架構設計的輸入是什么?

軟體系統最終要構建成什么樣,這是由專案干系人的各種要求決定的,通常,我們將這些要求歸集在產品需求檔案之中,這份產品需求就是架構設計的輸入,我們可以將這些需求劃分為:
- 功能需求:完成某項業務需要的功能操作,例如:共享單車客戶端軟體需要支持單車定位、掃碼解鎖等,
- 質量需求:每項功能操作要達到什么樣的質量要求,例如:易用性、可靠性、安全性、性能等等,
- 商業需求:軟體系統需要以什么樣的成本、迭代速度推向市場,如何提升產品的市場競爭力等等,
2. 架構師要對接哪些角色?
這些需求源自專案干系人、商業管理、商業競爭、法律法規、技識訓境、政治約束和生命周期等不同維度的訴求,架構設計就是要區分這些需求的優先級權重,然后找出相對最優的方案來平衡滿足各個方面的訴求,最侄訓于這個架構設計方案研發出相應的軟體系統推向市場,并收集市場反饋輸入到下一次迭代演化當中,

因此,架構在開展作業的程序中需要對接老板、產品、專案、開發、測驗、安全和運營等各種崗位角色,他們都是架構需要關注和服務的內部客戶,他們的痛點就是架構作業的驅動因素,
3. 架構設計的輸出

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

4. 架構設計的作業流程
- 第一步,分析產品需求梳理出關鍵業務場景;
- 第二步,基于關鍵場景劃分子系統,輸出邏輯視圖;
- 第三步,基于關鍵場景、邏輯視圖確定業務互動流程,輸出程序視圖;
- 第四步,基于邏輯視圖、程序視圖確定子系統技術堆疊,輸出開發視圖;
- 第五步,基于邏輯視圖、程序視圖和開發視圖確定部署方案,輸出物理視圖,
今天暫時先分享到這里,接下來我們還要繼續聊架構,敬請關注哦,堅持原創不易,如果你覺得有價值,麻煩動動手指點下文 「 推薦 」按鈕,讓更多小伙伴可以看到,老兵哥會更有動力堅持分享的,另外,我后續還會分享職業規劃、應聘面試、技能提升、影響力打造等經驗,關注「 IT老兵哥 」,賦能程式人生!

- 軟技能-熱門文章:(首發公眾號)
- 2020 來了,你的 2019 曬好封存了嗎?
- “花式”裁員套路深,你知道嗎?
- 遭遇裁員,如何渡過心理危機?
- 如何在寒冬中找到好作業?
- 2C 還是 2B,跟找作業有什么關系?
- 大公司 vs 小公司,你會選哪個?
- 記住這一點,不怕找不到好作業!
- 跳槽,跳還是不跳,該怎么跳?
- 程式員“求包養”攻略揭秘
- 很努力了,為什么我還在原地踏步?
- 硬技能-熱門文章:
- 程式員必須懂的架構入門課 1 2 3
- 架構到底是什么?來聽程式老兵怎么說!
- 架構竟然有這么多種,那我該怎么選呢?
- 如何設計出優美的Web API?
- 程式員必須掌握的性能調優 X Y Z
- 如何把單體式應用拆解成微服務?【上】
- 如何把單體式應用拆解成微服務?【下】
- 圖解 Spring:HTTP 請求的處理流程與機制【1】
- 圖解 Spring:HTTP 請求的處理流程與機制【2】
- 圖解 Spring:HTTP 請求的處理流程與機制【3】
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/26012.html
標籤:架構設計
下一篇:打造獨特的ORM開發框架
