当前位置: 首页 > news >正文

快手官方网站音乐人怎么做今日新闻内容

快手官方网站音乐人怎么做,今日新闻内容,有哪些做网站的,济南网站营销本文是《从零开始学架构》的第一篇学习笔记,主要理解架构的设计的本质定义、历史背景以及目的。 架构设计的本质 分别从三组概念的区别来理解架构设计。 系统与子系统 什么是系统,系统泛指由一群有关联的个体组成,根据某种规则运作&#…

本文是《从零开始学架构》的第一篇学习笔记,主要理解架构的设计的本质定义、历史背景以及目的。

架构设计的本质

分别从三组概念的区别来理解架构设计。

系统与子系统

什么是系统,系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。它的意思是“总体”“整体”或“联盟”

  • 关联:系统是由一群有关联的个体组成的,没有关联的个体堆在一起不能成为一个系统。例如,把一个发动机和一台 PC 放在一起不能称之为一个系统,把发动机、底盘、轮胎、车架组合起来才能成为一台汽车。
  • 规则:系统内的个体需要按照指定的规则运作,而不是单个个体各自为政。规则规定了系统内个体分工和协作的方式。例如,汽车发动机负责产生动力,然后通过变速器和传动轴,将动力输出到车轮上,从而驱动汽车前进。
  • 能力:系统能力与个体能力有本质的差别,系统能力不是个体能力之和,而是产生了新的能力。例如,汽车能够载重前进,而发动机、变速器、传动轴、车轮本身都不具备这样的能力

子系统也是由一群有关联的个体所组成的系统,多半会是更大系统中的一部分
在这里插入图片描述
例如微信本身是一个系统,包含聊天、登录、支付、朋友圈等子系统。朋友圈这个系统又包括动态、评论、点赞等子系统。评论这个系统可能又包括防刷子系统、审核子系统、发布子系统、存储子系统。评论审核子系统不再包含业务意义上的子系统,而是包括各个模块或者组件,这些模块或者组件本身也是另外一个维度上的系统。例如,MySQL、Redis 等是存储系统,但不是业务子系统。

模块与组件

模块和组件都是系统的组成部分,只是从不同的角度拆分系统而已。 划分模块的主要目的是职责分离;划分组件的主要目的是单元复用

  • 业务逻辑的角度来拆分系统后,得到的单元就是模块
  • 物理部署的角度来拆分系统后,得到的单元就是组件

以学生管理系统为例,从业务逻辑的角度分解,有如下模块
在这里插入图片描述
从物理部署的角度分解,有如下组件:
在这里插入图片描述
子系统是独立运行的,模块是子系统的逻辑组成部分,如果学生管理系统规模很大(例如在线学校),需要支撑每秒上万的登录请求,那么学生管理的登录模块可以升级为子系统

框架与架构

软件框架(Software framework)通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品

  • 框架是组件规范,例如,MVC 就是一种最常见的开发规范
  • 框架提供基础功能的产品,例如,Spring MVC 是 MVC 的开发框架,除了满足 MVC 的规范,Spring 提供了很多基础功能来帮助我们实现功能,包括注解(@Controller 等)、Spring Security、Spring JPA 等很多基础功能

软件架构指软件系统的“基础结构”,创造这些基础结构的准则,以及对这些结构的描述。
在这里插入图片描述

框架关注的是“规范”,架构关注的是“结构”

4R架构方法

软件架构指软件系统的顶层(Rank)结构,它定义了系统由哪些角色(Role)组成,角色之间的关系(Relation)和运作规则(Rule)
在这里插入图片描述

4R 是指 4 个关键词:Rank,Role,Relation 和 Rule。既然可以通过 4R 来定义软件系统的架构,那么按照 4R 架构定义的思路来画架构图也是很合情合理的,具体步骤如下

  • 第一步,明确 Rank:它是指软件架构是分层的,对应“系统”和“子系统”的分层关系。不要事无巨细地把一个大系统的方方面面都在一张架构图中展现出来,而应该明确你要阐述的系统所属的级别(L0~L4),然后只描述这个级别的架构信息。
  • 第二步,画出 Role:指软件系统包含哪些角色,每个角色都会负责系统的一部分功能。架构设计最重要的工作之一就是将系统拆分为多个角色,角色对应架构图中的区块、图标和节点等。
  • 第三步,画出 Relation:有了角色后,画出角色之间的关系,对应架构图中角色之间的连接线,不同的连接线可以代表不同的关系。
  • 第四步,最后画出 Rule:挑选核心场景,画出系统角色之间如何协作来完成某项具体的业务功能,对应系统序列图。

为了方便理解,Rank、Role 和 Relation 是通过系统架构图来展示的,而 Rule 是通过系统序列图(System Sequence Diagram)来展示的,以支付系统为例,顶层为支付系统,描述其子系统角色及角色之间的关系
在这里插入图片描述
“扫码支付”这个核心场景的系统序列图如下所示:
在这里插入图片描述

软件架构的历史背景

机器语言(太难写、太难读、太难改)-》汇编语言(仍然面向机器)-》高级语言(不再面向机器)-》结构化程序设计【模块】-》面向对象程序设计【对象】-》软件架构【组件】
在这里插入图片描述

软件设计过程中,模块、对象、组件本质上是对一定规模软件在不同粒度和层次上的“拆分”方法论(随着软件的复杂度不断增加,拆分的粒度越来越粗,拆分的层次越来越高),软件架构是一种对软件的“组织”方法论。一分一合,其目的是为了软件研发过程中的成本、进度、质量得到有效控制。一个成功的软件设计是要适应并满足业务需求,同时不断“演化”。设计需要根据业务的变化、技术的发展不断进行“演进”,这就决定了这是一个动态活动,出现新问题,解决新问题,没有所谓的“一招鲜”。

软件架构的目的

不是所有系统都需要架构设计,也不需要每个架构都具备高性能、高可用、高扩展等特点,架构设计的主要目的是为了解决软件系统复杂度带来的问题
在这里插入图片描述

总结一下

Rank分层区分系统与子系统暂时隔离关注面,在一个系统层面上,其子系统就是角色Role,子系统之间的关系就是Relation,一个核心的业务流程Rule可能涉及多个子系统的交互。如果子系统就是最小层级业务系统,那么它从逻辑层面讲可能包含很多模块,从部署的角度讲也包含很多组件,单个子系统可以使用springBoot框架搭建,遵守其规范使用其功能;软件架构没有银弹,是以解决系统复杂度为目的而随业务演进的方法论。知道WHAT,WHY,才能更好的学习HOW。

http://www.hrbkazy.com/news/42287.html

相关文章:

  • 做导航网站成本seo关键词排名教程
  • seo竞价推广全达seo
  • wordpress小标签怎么学seo基础
  • 泰州 做网站友情链接怎么交换
  • 在哪个网站做一件代发靠谱千瓜数据
  • 公司网站建设需要注意的地方seo 工具推荐
  • wordpress免费字体免费seo刷排名
  • 网站制作要学哪些朋友圈广告怎么投放
  • 北京网站建设公司分享网站改版注意事项品牌整合营销推广
  • 最新的疫情数据报告唐山seo排名
  • 北京塞车网站建设女孩子做运营是不是压力很大
  • 网站信息安全建设方案百度精准获客平台
  • 公司网站必须做可信认证吗seo服务外包客服
  • 网站的权限设置广告联盟接单赚钱平台
  • 网站小程序制作公司今日新闻头条
  • 网站开发维护工作怎样才能被百度秒收录
  • 做网站哪家下载优化大师
  • 网站开发流程人物免费推广网站
  • 怎样给网站做后台seo首页优化
  • 棋牌软件开发平台深圳网站建设专业乐云seo
  • 松山湖网站建设p2p万能搜索种子
  • 做淘宝客网站域名是别人的优化百度seo
  • 做网页代码的素材网站台州网站建设方案推广
  • 响应式相册网站全国人大常委会
  • 外贸平台阿里巴巴补贴政策邯郸seo推广
  • 网站网页进口网站建设技术托管
  • 网站组建下载班级优化大师并安装
  • 不建网站如何做淘宝客外链在线发布工具
  • 廊坊企业网站排名优化大众网潍坊疫情
  • 武汉网站建设网络营销seo的推广技巧