Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >.NET 云原生架构师训练营(系统架构)--学习笔记

.NET 云原生架构师训练营(系统架构)--学习笔记

原创
作者头像
郑子铭
发布于 2021-12-21 15:51:15
发布于 2021-12-21 15:51:15
3020
举报

目录

  • 对外展现的功能
  • 内部功能
  • 功能交互与价值通路
  • 系统架构

目标

  • 认识系统的价值通路
  • 认识功能架构,通过把功能结构与形式结构结合来描述系统架构

受益原则

好的架构必须使人受益,要想把架构做好,就要专注于功能的涌现,使得系统把它的主要功能通过跨越系统边界的接口对外展示出来

对外展现的功能

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中的形式相结合,形成架构图,请画出该系统的架构图。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
.NET 云原生架构师训练营(RGCA 四步架构法)--学习笔记
ASP .NET Core:为了能够简单方便地输出响应信息给请求,通过写一段代码创建响应内容,使用 ASP .NET Core
郑子铭
2021/12/29
3790
.NET 云原生架构师训练营(RGCA 四步架构法)--学习笔记
.NET 云原生架构师训练营(权限系统 RGCA 架构设计)--学习笔记
好的架构必须使人受益,要想把架构做好,就要专注于功能的涌现,使得系统把它的主要功能通过跨越系统边界的接口对外展示出来
郑子铭
2022/02/21
5440
.NET 云原生架构师训练营(权限系统 RGCA 架构设计)--学习笔记
.NET 云原生架构师训练营(权限系统 RGCA 架构设计)--学习笔记
好的架构必须使人受益,要想把架构做好,就要专注于功能的涌现,使得系统把它的主要功能通过跨越系统边界的接口对外展示出来
郑子铭
2022/03/22
5470
.NET 云原生架构师训练营(权限系统 RGCA 架构设计)--学习笔记
.NET 云原生架构师训练营(对象过程建模)--学习笔记
用户通过这个系统做成了一件事情,这是以目标为导向的,比如用户通过ATM机取钱,那么取钱就称为一个用例
郑子铭
2021/12/23
2910
.NET 云原生架构师训练营(对象过程建模)--学习笔记
.NET 云原生架构师训练营(组合模式)--学习笔记
在上一篇执行 _connectionDelegate 之后,HttpConnectionMiddleware 处理请求
郑子铭
2022/01/06
3870
.NET 云原生架构师训练营(组合模式)--学习笔记
.NET 云原生架构师训练营(建立系统观)--学习笔记
结论二:系统由若干个(实体/部件/模块)组成,每个子实体也同时具有形式和功能属性,能够独立成为一个系统
郑子铭
2021/12/20
4150
.NET 云原生架构师训练营(建立系统观)--学习笔记
.NET 云原生架构师训练营(ASP .NET Core 整体概念推演)--学习笔记
ASP .NET Core 其实就是通过 web framework 处理 HTTP 请求并提供 HTTP 响应
郑子铭
2021/12/30
3220
.NET 云原生架构师训练营(ASP .NET Core 整体概念推演)--学习笔记
.NET 云原生架构师训练营(模块二 基础巩固 依赖注入)--学习笔记
2.2.1 核心模块--依赖注入 什么是依赖注入 .NET Core DI 生命周期 服务设计 服务范围检查 ASP.NET Core 依赖注入:https://docs.microsoft.com/
郑子铭
2020/12/14
3970
.NET 云原生架构师训练营(模块二 基础巩固 依赖注入)--学习笔记
.NET 云原生架构师训练营(责任链模式)--学习笔记
职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无需关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了
郑子铭
2022/01/05
2410
.NET 云原生架构师训练营(责任链模式)--学习笔记
.NET 云原生架构师训练营(KestrelServer源码分析)--学习笔记
理解 KestrelServer 如何接收网络请求,网络请求如何转换成 http request context(C# 可识别)
郑子铭
2022/01/17
3100
.NET 云原生架构师训练营(KestrelServer源码分析)--学习笔记
架构师训练营 - 大作业(一)
以 PPT 方式输出系统概要设计(顶层架构设计),包含以下模型,进行架构设计评审:
lukachen
2023/10/22
1790
.NET 云原生架构师训练营(模板方法 && 建造者)--学习笔记
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤
郑子铭
2022/01/07
3160
.NET 云原生架构师训练营(模板方法 && 建造者)--学习笔记
.NET 云原生架构师训练营(模块一 架构师与云原生)--学习笔记
Software architecture = {Elements, Forms, Rationale/Constraints}
郑子铭
2020/10/11
7450
.NET 云原生架构师训练营(模块一 架构师与云原生)--学习笔记
.NET 云原生架构师训练营(模块二 基础巩固 Host)--学习笔记
2.2.4 核心模块--Host 什么是 Host Host 的默认配置做了哪些事情 框架提供的服务 HostedService 后台服务 ASP.NET Core Web 主机:https://do
郑子铭
2021/01/13
3640
.NET 云原生架构师训练营(设计原则&&设计模式)--学习笔记
模式通常是指那些在一些相同的领域和上下文内,解决同样的问题。所以一定要结合具体的使用场景去了解设计模式
郑子铭
2022/01/04
1850
.NET 云原生架构师训练营(设计原则&&设计模式)--学习笔记
.NET 云原生架构师训练营(模块二 基础巩固 引入)--学习笔记
https://juejin.im/post/6844903922084085773
郑子铭
2020/12/07
8470
.NET 云原生架构师训练营(模块二 基础巩固 引入)--学习笔记
.NET 云原生架构师训练营(模块二 基础巩固 REST && RESTful)--学习笔记
理解RESTful架构:https://www.ruanyifeng.com/blog/2011/09/restful.html
郑子铭
2020/12/21
4510
.NET 云原生架构师训练营(模块二 基础巩固 REST && RESTful)--学习笔记
.NET 云原生架构师训练营(模块二 基础巩固 路由与终结点)--学习笔记
2.3.3 Web API -- 路由与终结点 路由模板 约定路由 特性路由 路由冲突 终结点 ASP.NET Core 中的路由:https://docs.microsoft.com/zh-cn/a
郑子铭
2020/12/22
4530
.NET 云原生架构师训练营(模块二 基础巩固 路由与终结点)--学习笔记
.NET 云原生架构师训练营(模块二 基础巩固 引入)--学习笔记
https://juejin.im/post/6844903922084085773
郑子铭
2021/01/13
6910
.NET 云原生架构师训练营(模块二 基础巩固 引入)--学习笔记
.NET 云原生架构师训练营(模块二 基础巩固 配置)--学习笔记
2.2.3 核心模块--配置 IConfiguration Options ASP.NET Core 中的配置:https://docs.microsoft.com/zh-cn/aspnet/core
郑子铭
2021/01/13
3350
推荐阅读
.NET 云原生架构师训练营(RGCA 四步架构法)--学习笔记
3790
.NET 云原生架构师训练营(权限系统 RGCA 架构设计)--学习笔记
5440
.NET 云原生架构师训练营(权限系统 RGCA 架构设计)--学习笔记
5470
.NET 云原生架构师训练营(对象过程建模)--学习笔记
2910
.NET 云原生架构师训练营(组合模式)--学习笔记
3870
.NET 云原生架构师训练营(建立系统观)--学习笔记
4150
.NET 云原生架构师训练营(ASP .NET Core 整体概念推演)--学习笔记
3220
.NET 云原生架构师训练营(模块二 基础巩固 依赖注入)--学习笔记
3970
.NET 云原生架构师训练营(责任链模式)--学习笔记
2410
.NET 云原生架构师训练营(KestrelServer源码分析)--学习笔记
3100
架构师训练营 - 大作业(一)
1790
.NET 云原生架构师训练营(模板方法 && 建造者)--学习笔记
3160
.NET 云原生架构师训练营(模块一 架构师与云原生)--学习笔记
7450
.NET 云原生架构师训练营(模块二 基础巩固 Host)--学习笔记
3640
.NET 云原生架构师训练营(设计原则&&设计模式)--学习笔记
1850
.NET 云原生架构师训练营(模块二 基础巩固 引入)--学习笔记
8470
.NET 云原生架构师训练营(模块二 基础巩固 REST && RESTful)--学习笔记
4510
.NET 云原生架构师训练营(模块二 基础巩固 路由与终结点)--学习笔记
4530
.NET 云原生架构师训练营(模块二 基础巩固 引入)--学习笔记
6910
.NET 云原生架构师训练营(模块二 基础巩固 配置)--学习笔记
3350
相关推荐
.NET 云原生架构师训练营(RGCA 四步架构法)--学习笔记
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档