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

网站建设行业地位做外贸需要网站吗

网站建设行业地位,做外贸需要网站吗,郑州妇科哪一家医院好,wordpress 做下载站文章目录 一. 架构定义与架构的作用1. 系统与子系统2. 模块与组件3. 框架与架构4. 重新定义架构:4R 架构 二、架构设计的真正目的-别掉入架构设计的误区1. 是为了解决软件复杂度2. 简单的复杂度分析案例 三. 案例思考 本文关键字 架构定义 架构与系统的关系从业务逻…

文章目录

  • 一. 架构定义与架构的作用
    • 1. 系统与子系统
    • 2. 模块与组件
    • 3. 框架与架构
    • 4. 重新定义架构:4R 架构
  • 二、架构设计的真正目的-别掉入架构设计的误区
    • 1. 是为了解决软件复杂度
    • 2. 简单的复杂度分析案例
  • 三. 案例思考

本文关键字

架构定义

  1. 架构与系统的关系
  2. 从业务逻辑的角度将系统拆成模块
  3. 从物理角度讲系统拆成组件
  4. 架构与框架的区别
     
    架构设计的目的与案例分析

一. 架构定义与架构的作用

要想准确地理解架构的定义,关键就在于把三组容易混淆的概念梳理清楚:系统与子系统、模块与组件、框架与架构。

1. 系统与子系统

一个系统的架构,只包括顶层这一个层级的架构,而不包括下属子系统层级的架构。比如微信架构,就是指微信系统这个层级的架构。当然,微信的子系统,比如支付系统,也有它自己的架构,同样只包括顶层。

 

2. 模块与组件

如果你是业务系统的架构师,首先需要思考怎么从业务逻辑的角度把系统拆分成一个个模块角色,其次需要思考怎么从物理部署的角度把系统拆分成组件角色,例如选择 MySQL 作为存储系统。
 
但是对于 MySQL 内部的体系架构(Parser、Optimizer、Caches&Buffers 和 Storage Engines
等),你其实是可以不用关注的,也不需要在你的业务系统架构中展现这些内容。

 

3. 框架与架构

框架是一整套开发规范,架构是某一套开发规范下的具体落地方案,包括各个模块之间的组合关系以及它们协同起来完成功能的运作规则。

 

4. 重新定义架构:4R 架构

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

 

第一个 R,Rank。

它是指软件架构是分层的,对应“系统”和“子系统”的分层关系。通常情况下,我们只需要关注某一层的架构,最多展示相邻两层的架构,而不需要把每一层的架构全部糅杂在一起。无论是架构设计还是画架构图,都应该采取“自顶向下,逐步细化”的方式。以微信为例,Rank 的含义如下所示:
在这里插入图片描述

第二个 R,Role。

它是指软件系统包含哪些角色,每个角色都会负责系统的一部分功能。架构设计最重要的工作之一就是将系统拆分为多个角色。最常见的微服务拆分其实就是将整体复杂的业务系统按照业务领域的方式,拆分为多个微服务,每个微服务就是系统的一个角色。

第三个 R,Relation。

它是指软件系统的角色之间的关系,对应到架构图中其实就是连接线,角色之间的关系不能乱连,任何关系最后都需要代码来实现,包括

  • 连接方式(HTTP、TCP、UDP 和串口等)
  • 数据协议(JSON、XML 和二进制等)
  • 具体的接口等。

第四个 R,Rule。

它是指软件系统角色之间如何协作来完成系统功能。我们在前面解读什么是“系统”的时候提到过:系统能力不是个体能力之和,而是产生了新的能力。那么这个新能力具体如何完成的呢?具体哪些角色参与了这个新能力呢?这就是 Rule 所要表达的内容。在架构设计的时候,核心的业务场景都需要设计 Rule。

 

二、架构设计的真正目的-别掉入架构设计的误区

1. 是为了解决软件复杂度

架构设计的主要目的是为了解决软件系统复杂度带来的问题。

 

如果明确了“架构设计是为了解决软件复杂度”原则后,下面的问题就很好回答。

  • “这么多需求,从哪里开始下手进行架构设计呢?”——通过熟悉和理解需求,识别系统复杂性所在的地方,然后针对这些复杂点进行架构设计。

  • “架构设计要考虑高性能、高可用、高扩展……这么多高 XX,全部设计完成估计要 1 个月,但老大只给了 1 周时间”——架构设计并不是要面面俱到,不需要每个架构都具备高性能、高可用、高扩展等特点,而是要识别出复杂点然后有针对性地解决问题

  • “业界 A 公司的架构是 X,B 公司的方案是 Y,两个差别比较大,该参考哪一个呢?”——理解每个架构方案背后所需要解决的复杂点,然后才能对比自己的业务复杂点,参考复杂点相似的方案。

 

其次,遵循这条准则能够让“老鸟”架构师有的放矢,而不是贪大求全。

如下误区:

  1. “我们的系统一定要做到每秒 TPS 10 万”。“淘宝的架构是这么做的,我们也要这么做”。
  2. “Docker 现在很流行,我们的架构应该将 Docker 应用进来”。

实际上

  • “我们的系统一定要做到每秒 TPS 10 万”——如果系统的复杂度不是在性能这部分,TPS 做到 10 万并没有什么用。

  • “Docker 现在很流行,我们的架构应该将 Docker 应用进来”——Docker 不是万能的,只是为了解决资源重用和动态分配而设计的,如果我们的系统复杂度根本不是在这方面,引入 Docker 没有什么意义。

 

2. 简单的复杂度分析案例

假设我们需要设计一个大学的学生管理系统,其基本功能包括登录、注册、成绩管理、课程管理等。当我们对这样一个系统进行架构设计的时候,首先应识别其复杂度到底体现在哪里。

  1. 性能:一个学校的学生大约 1 ~ 2 万人,学生管理系统的访问频率并不高,平均每天单个学生的访问次数平均不到 1 次,因此性能这部分并不复杂,存储用 MySQL 完全能够胜任,缓存都可以不用,Web 服务器用 Nginx 绰绰有余。
  2. 可扩展性:学生管理系统的功能比较稳定,可扩展的空间并不大,因此可扩展性也不复杂
  3. 高可用:学生管理系统即使宕机 2 小时,对学生管理工作影响并不大,因此可以不做负载均衡,更不用考虑异地多活这类复杂的方案了。但是,如果学生的数据全部丢失,修复是非常麻烦的,只能靠人工逐条修复,这个很难接受,因此需要考虑存储高可靠,这里就有点复杂了。我们需要考虑多种异常情况:机器故障、机房故障,针对机器故障,我们需要设计 MySQL 同机房主备方案;针对机房故障,我们需要设计 MySQL 跨机房同步方案。
  4. 安全性:学生管理系统存储的信息有一定的隐私性,例如学生的家庭情况,但并不是和金融相关的,也不包含强隐私(例如玉照、情感)的信息,因此安全性方面只要做 3 个事情就基本满足要求了:Nginx 提供 ACL 控制、用户账号密码管理、数据库访问权限控制
  5. 成本:由于系统很简单,基本上几台服务器就能够搞定,对于一所大学来说完全不是问题,可以无需太多关注。

通过上面的分析,可以看到这个方案的主要复杂性体现在存储可靠性上,需要保证异常的时候,不要丢失所有数据即可(丢失几个或者几十个学生的信息问题不大),对应的架构如下:
在这里插入图片描述

 
 

三. 案例思考

找到核心的复杂点
在这里插入图片描述
 

不要为了架构而架构
在这里插入图片描述

 
识别架构复杂程度与具体化
在这里插入图片描述

 
 
参考:李运华-《从零开始学架构》

http://www.yayakq.cn/news/85496/

相关文章:

  • 怎么做转载小说网站标小智logo设计官网
  • 2网站制作商城简介
  • 百度搜索网站在第一次输入搜索内容后点搜索键没有反应北语网站app
  • 网站运营的主要内容清理wordpress头部
  • 一流的山西网站建设网站建设论文选题
  • 网站浮动条网络推广100种方式
  • 网站google搜索优化亚马逊的网络营销方式
  • 访问不了服务器的网站特色企业网站
  • 做调查可以赚钱的网站网址导航设主页
  • 好学校平台网站模板下载用内网穿透做网站可以被收录吗
  • 品牌网站建设专家青海省高等级公路建设管局网站
  • 个人网站备案的好处四平网站建设营销
  • 深圳网站制作招聘自己做网站需要钱吗
  • 官方网站怎么建设的centos怎么装WordPress
  • 自己做网站要办手续吗免费自助建网站
  • 渝水区城乡建设局网站wordpress 换轮播如
  • 生产做网站表带的制造厂家济南新站seo外包
  • 新网站如何做营销电子商务师证报考官网
  • 怎么在电脑上建立自己的网站wordpress如和安装
  • seo优化网站源码网站设计想法
  • 网站站内消息设计方案凉山州住房与城乡建设局网站
  • 邯郸做网站的博客成为网站开发工程师
  • 厦门网站建设模拟平台最新域名ip地址
  • 九江网站建设哪家好推广做网站南充
  • 绘画网站建设无锡网站制作推广公司
  • 自己建网站需要什么软件百度网盘登录首页
  • 重庆专业网站公司wordpress4.1
  • 枣阳网站开发wordpress 凌风
  • 厦门网站建设设计wordpress 主题教程电子书
  • 吐槽做网站wordpress老是有人注册