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

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET 云原生架构师训练营(系统架构)--学习笔记相关的知识,希望对你有一定的参考价值。

 点击上方“DotNet NB”关注公众号

回复“1”获取开发者路线图

学习分享 丨作者 / 郑 子 铭    

这是DotNet NB 公众号的第176篇原创文章

目录

  • 对外展现的功能

  • 内部功能

  • 功能交互与价值通路

  • 系统架构

目标

  • 认识系统的价值通路

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

受益原则

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

对外展现的功能

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

推荐阅读:

Kubernetes全栈架构师(Kubeadm高可用安装k8s集群)--学习笔记

.NET 云原生架构师训练营(模块一 架构师与云原生)--学习笔记

.NET Core开发实战(第1课:课程介绍)--学习笔记

点击下方卡片关注DotNet NB

一起交流学习

▲ 点击上方卡片关注DotNet NB,一起交流学习

请在公众号后台

回复 【路线图】获取.NET 2021开发者路线图

回复 【原创内容】获取公众号原创内容

回复 【峰会视频】获取.NET Conf开发者大会视频

回复 【个人简介】获取作者个人简介

回复 【年终总结】获取作者年终总结

回复 加群加入DotNet NB 交流学习群

长按识别下方二维码,或点击阅读原文。和我一起,交流学习,分享心得。

以上是关于.NET 云原生架构师训练营(系统架构)--学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

.NET 云原生架构师训练营(权限系统 代码实现 ActionAccess)--学习笔记

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

.NET 云原生架构师训练营(KestrelServer源码分析)--学习笔记

.NET 云原生架构师训练营(基于 OP Storming 和 Actor 的大型分布式架构一)--学习笔记

.NET 云原生架构师训练营(设计原则&&设计模式)--学习笔记

.NET 云原生架构师训练营(基于 OP Storming 和 Actor 的大型分布式架构三)--学习笔记...