系統架構設計師學習(二)系統架構設計師緒論

有梦想的肥宅發表於2024-03-06

一、系統架構概述

系統架構的定義和發展歷程

  定義:架構是體現在元件中的一個系統的基本組織、彼此間的關係、與環境的關係及指導它的設計和發展原則

  架構設計作用:

  • 1、解決相對複雜的需求問題.
  • 2、解決非功能屬性在系統佔據重要位置的設計問題。
  • 3、解決生命週期長、擴充套件性需求高的系統整體結構問題。
  • 4、解決系統基於元件需要的整合問題。
  • 5、解決業務流程再造困難的問題。

  發展階段:

  • 1、基礎研究階段【1968~1994年】:
    • 1968年:北大西洋公約組織會議首次提出“軟體架構”的概念。
    • 20世紀80年代起:形成軟體架構的雛形,為後續發展奠定基礎。
    • 20世紀90年代左右:首次對軟體架構進行了定義;模組化思想興起,推動軟體架構快速發展。
  • 2、概念體系和核心技術形成階段【1999~2000年】:
    • 1999年:召開第一屆IFIP軟體架構會議,成立IFIP工作組2.0和全球軟體架構師協會。
    • 2000年:釋出第一次定義了軟體架構的形式化標準。(標誌著軟體架構理論體系基本建立,並已具備普及應用的基礎)
  • 3、理論體系完善與發展階段【1996年至今】:
    • 1996年至今:隨著元件軟體架構理論的建立,與之相關的一些研究方向逐漸成為軟體工程領域的研究重點。
  • 4、普及應用階段【2000年至今】:
    • 2000年至今:軟體架構思想逐漸深入人心,軟體架構是軟體生命週期中的重要產物,影響軟體開發的各個階段。(需求、設計、實現、維護)

軟體架構常用分類

分層架構

  含義:最常見的架構,也是標準架構。

  最常見的是四層架構

  • 表現層:使用者介面,負責視覺和使用者互動
  • 業務層:實現業務邏輯
  • 持久層:提供資料(SQL就放在這一層)
  • 資料庫層:儲存資料

  PS:使用者的請求一次透過這4層處理,不能跳過其中任何一層。(部分專案會在業務層和持久層之間加入一個服務層)

事件驅動架構

  含義:狀態發生變化時軟體發出通知,觸發相應行為。

  組成:

  • 事件佇列:接收事件的入口。
  • 分發器:將不同的事件分發到不同的業務邏輯單元。
  • 事件通道:分發器與處理器之間的聯絡渠道。
  • 事件處理器:實現業務邏輯,處理完成後會觸發事件,觸發下一步操作。

  PS:簡單的專案可以把事件佇列、分發器和事件通道合為一體,分成事件代理和事件處理器兩部分。

微核架構

  含義:軟體核心相對較小,主要功能和業務邏輯都透過外掛實現。【又稱為“外掛系統”】

微服務架構

  含義:服務導向架構。每一個服務就是一個獨立的部署單元。

  三種實現模式:

  • Resful API模式:服務透過API提供。【雲服務】
  • Resful應用模式:服務透過應用程式暴露介面的方式提供。【企業應用】
  • 集中訊息模式:訊息代理模式。透過訊息控制行為。【分散式事務】

雲架構

  含義:主要解決擴充套件性和併發的問題。資料都複製到記憶體中,變成可複製的記憶體資料單元,將業務處理能力封裝成梳理單元,沒有中央資料庫,需要進行資料持久化

系統架構常用的建模方法

  • 結構模型以架構的構件、連線件和其他概念來刻畫結構。
  • 框架模型不太側重描述結構和細節,更側重於整體的結構。
  • 動態模型主要研究系統大方向的調整。(如:系統的重新配置或演化)
  • 過程模型研究構造系統的步驟和過程。

二、系統架構設計師概述

架構設計師的定義、職責和任務

  定義:執行一系列活動來實施架構設計

  成果:建立架構

  職責:進行技術決策的權威。同時應該為他人樹立榜樣並在制定方向方面表現出自信。

  任務:

  • 1、領導與協調整個專案中的技術活動。
  • 2、推動主要的技術決策,並最終表達為系統架構。
  • 3、確定系統架構,並促使其架構設計的文件化。

架構設計師應具備的專業素質

  • 1、掌握業務領域的知識
  • 2、掌握技術知識
  • 3、掌握設計技能
  • 4、具備程式設計技能
  • 5、具備溝通能力
  • 6、具備決策能力【決策時諮詢其他人並製造共同參與決策環境的同時,也要適當的決策】
  • 7、知道組織策略
  • 8、應是談判專家

架構設計師的知識結構

  • 1、戰略規劃能力
  • 2、業務流程建模能力
  • 3、資訊資料架構能力
  • 4、技術架構設計和實現能力
  • 5、應用技術架構的解決和實現能力
  • 6、基礎IT知識及基礎設施、資源調配的能力
  • 7、資訊保安技術支援與管理保障能力
  • 8、IT審計、治理與基本需求的分析和獲取能力
  • 9、面向軟體系統可靠性與系統生命週期的質量保障服務能力
  • 10、對新技術與新概念的理解、掌握和分析能力

三、如何成為一名好的系統架構設計師

如何衡量一名優秀架構設計師

  • 1、作為領導者【具備講故事、影響力、引導衝突、構建信任等領導技能】
  • 2、作為開發人員
  • 3、聚焦系統
  • 4、具備企業家思維【不但會尋求快速學習的機會和方法,也要學會做好接受失敗的心理準備】
  • 5、權衡策略思維和戰術思維
  • 6、良好的溝通【最重要的不一定是架構師的能力,而是他們在每個不同領域都有足夠專業的知識】

從工程師到系統架構設計師的演化

  • 主要區別體現在技術、組織和個人成長上。
  • 不只是口頭溝通能力,也要鍛鍊使用標準化圖表來表達設計思路的能力。
  • 架構的工作主題就是權衡
  • 習慣於不完美和一定條件下的不精確
  • 10000小時定律。
  • 對技術的熱情以及持續不斷地投入,包括學習、實踐、思考和總結等。

相關文章