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

DotNet NB

共 1990字,需浏览 4分钟

 · 2021-12-25

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

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

学习分享 丨作者 / 郑 子 铭    

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

目录

  • 目标

  • ASP .NET Core

  • 什么是系统

  • 什么是系统思维

  • 系统分解

  • 什么是复杂系统

  • 作业

目标

  • 通过整体定义去认识系统

  • 通过分解去简化对系统的认识

ASP .NET Core

  • ASP .NET Core 是什么

  • ASP .NET Core 是干什么的

  • Host、Server、HostApplication 与 ASP .NET Core 是什么关系

  • ASP .NET Core 和 .NET Core 是什么关系

ASP .NET Core 是什么

WEB FRAMEWORK(形式)

ASP .NET Core 是干什么的

帮助我们快速地构建跨平台的、现代化的、高性能的、面向云的WEB应用程序(功能)

形式 + 功能 = 系统

你身边看到的那些系统:

形式功能
锤子钉钉子
集装箱存储货物
飞机快速传输人或物

结论一:系统具有形式和功能的属性

Host、Server、HostApplication 与 ASP .NET Core 是什么关系

它们是构成 ASP .NET Core 的一部分

形式功能
Host管理资源
Server监听和处理网络
HostApplication封装 HTTP 处理程序

结论二:系统由若干个(实体/部件/模块)组成,每个子实体也同时具有形式和功能属性,能够独立成为一个系统

一个集装箱可以被拆解成多个部分,每一个部分都有它的功能和属性

ASP .NET Core + Your code = 一个新系统

原则一:系统的涌现原则

系统的整体功能大于各部件之和

-预期的非预期的
良好的涌现能处理HTTP请求很适合云原生的场景
不良的涌现会受到攻击,并发高的时候会瘫痪程序员写的异常

非预期的良好的涌现:设计的时候没想到还能这样使用

ASP .NET Core 和 .NET Core 是什么关系

ASP .NET Core 是 .NET Core 的一部分,负责 WEB 这一类应用程序的处理

原则二:整体原则

每个系统都作为某一个或某些个大系统的一小部分而运作,同时,每个系统中也包含一些更小的系统

例如在设计一个椅子的时候,可以把椅子放到一个房间里面去考虑,把房间放到整个建筑里面去考虑,把建筑放到整个社区里面去考虑,社区放到整个城市规划里面去考虑

例如当我做 WEB FRAMEWORK 的时候只需要考虑 ASP .NET Core,但是当我需要做一个开发平台,比如 .NET Core 的时候,就不止是 ASP .NET Core 了,它只是这个平台上面开发 WEB 应用的东西。

除了 WEB 应用,开发平台还需要处理控制台应用 Console,移动端应用 Mobile,这个时候就会考虑有哪些组件除了给 ASP .NET Core 使用,同时还会给平层的或者更高层的使用。

这个时候就会抽象出 DI,Configuration,Logging 的这些部分,它们是 ASP .NET Core 的组成部分之一,但是同时它们也可以被 .NET Core 这个更大的系统里面的其他子系统使用

当我们以整体的原则去思考的时候,可以满足更大的系统的需要,但同时成本也会更低,设计质量也会更好,不然可能会每个子系统都设计一个 DI,Configuration,Logging,如果一开始就以一个整体去考虑,就不会这样

当我们需要为一个大系统添加一个小系统的时候,需要考虑整体可能会带来的影响,比如商城增加一个发放优惠券的功能,需要考虑优惠券对原来会员等级的优惠,平台的优惠有没有冲突,另外需要考虑优惠券对订单系统,库存系统,会员系统会不会有影响

所有的系统都是由实体组成,实体本身也是一个系统

所有的系统都可以作为一个实体,来构成一个更大的系统

什么是系统

  • 系统拥有形式属性和功能属性

  • 系统由实体组成,且系统功能大于部分功能之和

  • 组成系统的实体同样具备形式与功能的属性,它们本身也是一个系统

什么是系统思维

把你的问题、你正在处理的事情当成一个系统来看待和进行分析

比如把培训当成一个系统来看待,它的功能是什么?功能是能够给系统的使用者带来价值的东西。

培训系统的用户是参加培训的人,它的功能是能够让参加培训的人学有所成,这是他们获得的价值和利益,很多系统列了功能清单,但是没办法描述清楚功能给用户带来的价值是什么。

系统分层:

  • 一楼:理解系统是什么?理解其意义

  • 二楼:预测某物发生变化后的情况

  • 三楼:提供决策

  • 四楼:用部件合成系统

系统分解

  • 分解系统

  • 层级分解

浏览 26
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报