.NET 雲原生架構師訓練營(系統架構)–學習筆記

目錄

  • 對外展現的功能
  • 內部功能
  • 功能交互與價值通路
  • 系統架構

目標

  • 認識系統的價值通路
  • 認識功能架構,通過把功能結構與形式結構結合來描述系統架構

受益原則

好的架構必須使人受益,要想把架構做好,就要專註於功能的湧現,使得系統把它的主要功能通過跨越系統邊界的介面對外展示出來

對外展現的功能

ASP .NET Core 的使用者是程式設計師,最終的受益是老闆

上一講對 ASP .NET Core 的描述是文字性描述,是一種非結構性描述,不是很準確,因為每個人對文字的理解都不一樣

ASP .NET Core 對外展現的功能和價值可以主要拆分為兩個過程:啟動和執行

啟動的時候有目標,就是程式碼;執行的時候有請求和響應

如何描述一個功能

一個過程通常會改變操作數對象的狀態(包括創建、銷毀)

功能需要由一個形式來進行承載,有時候我們也稱之為工具對象(你的程式碼)

比如燒水需要一個燒水壺,但是燒水壺沒辦法提供熱水,這個系統通過把水加熱給我提供熱水

加熱是過程,水是操作數對象,通過加熱的過程改變了水的溫度,實現了整個系統的目標,為我提供熱水

這裡面我們可以發現加熱需要一個工具對象,使用什麼進行加熱,燃氣灶、柴火還是煤氣

功能就是通過一個工具對象實施一個過程來改造一個目標操作數對象的一些狀態來實現一些目標

ASP .NET Core 對外展現的功能和價值

與價值有關的操作數 與價值有關的屬性及狀態 與價值有關的過程 系統的形式
web 請求 web 請求響應體 影響/改變 帶自託管的 WEB FRAMEWORK
  • 系統所帶來的利益與它對外展現的功能有關
  • 系統中的過程,會對與價值有關的操作數進行操控,並以此產生利益

內部功能

專註於系統對外展現的主要功能,也就是會對與價值有關的操作數進行創建、銷毀、或影響的那個過程

主要內部操作數 主要內部過程
tcp 網路請求 接收
c# 可識別的請求 寫入 Response
tcp 網路 格式化

如何找到內部過程

首先找到對外展現的功能,對外展現的功能裡面必然包含一個操作數對象,這個操作數對象在內部必然會經過若干個過程的影響,最後實現了整體的功能

所以和最有價值的操作數對象相關的內部過程就可以提煉出來,形成一連串的動作,然後形成價值通路

比如電商系統中,核心的功能是完成用戶購物,與價值有關的操作數是訂單對象

從外部展現來看是用戶創建訂單,訂單發貨

從內部來看就會圍繞訂單對象,創建訂單,確認訂單,訂單打通,訂單發貨,訂單簽收

功能交互與價值通路

功能架構:過程之間共享、或交互的操作數 = 功能交互功能與功能交互,合起來構成功能架構

價值通路:功能架構中包含價值通路,使得價值通路可以沉著這條通路而傳遞。利益就是沿著這條通路向下進行的,並最終演化為價值

不在價值通路上的東西

  • 形式實體,形式是某個功能的工具,不在功能架構之內
  • 對外展現的次要功能、提供支援的過程和操作數
  • 對良好的外部功能起不到湧現作用的過程及操作數
  • 對系統起到支撐作用的其它過程和形式

次要外部功能及內部功能

必須展現出與價值有關的主要功能,以體現該系統存在的意義,除此之外,它還可能展現出一些與價值有關的次要功能

系統架構

這是一個形式結構,SERVER 是形式實體

這是功能架構,接收是一個過程,C#可識別的請求資訊是一個操作數對象

架構是形式結構和功能架構的結合

這是一個動靜結合的系統架構,既會告訴你系統對外的一些功能和價值是如何實現的,同時也會告訴你它有哪些內部的實體來滿足的

總結

  • 系統架構由功能架構與形式元素及形式架構相結合而成
  • 系統架構是通過系統結構和行為的組合使系統提供功能
  • 功能就是系統的頂層過程,系統架構(結構-行為組合)用於支援系統執行其頂層過程,進而使系統實現其功能為客戶創造價值

架構模式

模式:描述的是一種關係(類與類的關係、組件與組件的關係),並且這種關係是可復用的!

特定上下文:說明這種關係的適用場景是有限制的,只能在特定場景下能適用!

常見問題:說明這種關係是解決某個問題或某類問題的解決方案。

  • Layered pattern
  • Client-server pattern
  • Master-slave pattern
  • Pipe-filter pattern
  • Broker pattern
  • Peer-to-peer pattern
  • Event-bus pattern
  • Model-view-controller pattern
  • Blackboard pattern
  • Interpreter pattern

作業

在 1.1 的作業中,你將你認識的那個系統進行了形式上的分解。

請進一步思考,該系統對外提供的功能是通過什麼樣的價值通路實現的?

請畫出該系統的價值通路(通過功能架構圖來體現價值通路)。

把功能架架構 與1.1中的形式相結合,形成架構圖,請畫出該系統的架構圖。

課程鏈接

//appsqsyiqlk5791.h5.xiaoeknow.com/v1/course/video/v_5f39bdb8e4b01187873136cf?type=2

知識共享許可協議

本作品採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。

歡迎轉載、使用、重新發布,但務必保留文章署名 鄭子銘 (包含鏈接: //www.cnblogs.com/MingsonZheng/ ),不得用於商業目的,基於本文修改後的作品務必以相同的許可發布。

如有任何疑問,請與我聯繫 ([email protected]) 。