.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中的形式相結合,形成架構圖,請畫出該系統的架構圖。

課程鏈接

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

知識共享許可協議

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

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

如有任何疑問,請與我聯系 (MingsonZheng@outlook.com) 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM