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

来源:https://www.cnblogs.com/itlaobingge/archive/2020/01/02/12131419.html
-Advertisement-
Play Games

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


 

小伙伴們,新年好!

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

祝大家新年在家庭、事業和生活上都有新的進步,我們一起加油乾!⛽️⛽️⛽️

 

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

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

架構驅動因素

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

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

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

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

架構師干係人

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

3. 架構設計的輸出

架構設計輸出

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

 

四種視圖詳解

4. 架構設計的工作流程

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

 

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

微信公眾號「 IT老兵哥 」

關註「 IT老兵哥 」,賦能程式人生!

  • 軟技能-熱門文章:(首發公眾號)
  1. 2020 來了,你的 2019 曬好封存了嗎?
  2. “花式”裁員套路深,你知道嗎?
  3. 遭遇裁員,如何渡過心理危機?
  4. 如何在寒冬中找到好工作?
  5. 2C 還是 2B,跟找工作有什麼關係?
  6. 大公司 vs 小公司,你會選哪個?
  7. 記住這一點,不怕找不到好工作!
  8. 跳槽,跳還是不跳,該怎麼跳?
  9. 程式員“求包養”攻略揭秘
  10. 很努力了,為什麼我還在原地踏步?

 

  • 硬技能-熱門文章:
  1. 程式員必須懂的架構入門課 1 2 3
  2. 架構到底是什麼?來聽程式老兵怎麼說!
  3. 架構竟然有這麼多種,那我該怎麼選呢?
  4. 如何設計出優美的Web API?
  5. 程式員必須掌握的性能調優 X Y Z
  6. 如何把單體式應用拆解成微服務?【上】
  7. 如何把單體式應用拆解成微服務?【下】
  8. 圖解 Spring:HTTP 請求的處理流程與機制【1】
  9. 圖解 Spring:HTTP 請求的處理流程與機制【2】
  10. 圖解 Spring:HTTP 請求的處理流程與機制【3】

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Element UI 表單設計及代碼生成器,可將生成的代碼直接運行在基於 Element 的 vue 項目中。 github倉庫 https://github.com/JakHuang/form-generator 特點 可視化設計表單 一鍵生成原生的vue單頁表單代碼,100%拓展性 線上編輯器修 ...
  • 「前端,有發展“錢”途」 前端發展隨著互聯網大時代如火如荼的進行著,Web前端技術依靠其自身在頁面交互效果上強大的功能屬性受到了眾多企業的青睞。這不僅是在北上廣,很多一二線城市都是如此。 無論是你使用的智能手機,還是iPad,還是pc電腦等等,前臺的頁面樣式都需要前端開發工程師來編寫實現,也因此市場 ...
  • //點擊a標簽,輪流顯示和隱藏<div id="timo" style="background-color:red;height:50px;width:50px;"></div><a href="javascript:void(0);" id="lol">點擊這裡</a> <script>$(fun ...
  • 2)局部變數和全局變數 馬克-to-win:瀏覽器裡面 window 就是 global,通常可以省。nodejs 里沒有 window,但是有個叫 global 的。例 3.2.1<html><head> <meta http-equiv="content-type" content="text/ ...
  • What do we need? 筆者目的是在vue項目打包後的 dist/index.html 文件中寫入本次打包git用戶、最後一次git提交信息,這樣做的目的是便於線上項目的管理和防止同事之間的相互扯皮。最後打包出的效果如下圖: How to do? 版本信息需要記錄 git最後一次提交作者( ...
  • javascript當中null和undefined的==和===的比較 ...
  • 本系統包括兩台Web伺服器和個資料庫伺服器,資料庫伺服器採用雙主從配置,另外還有負載均衡以及redis實現session共用 ...
  • ORM一直是長久不衰的話題,各種重覆造輪子的過程一直在進行,輪子都一樣是圓的,你的又有什麼特點呢? CRL這個輪子造了好多年,功能也越來越標準完備,在開發過程中,解決了很多問題,先上一張腦圖描述CRL的功能 開發框架的意義在於 開發更標準,更統一,不會因為不同人寫的代碼不一樣 開發效率更高,無需重新 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...