基础架构-架构理论简析

01 | 导读

1、深究“架构”到底指什么,需要了解以下几个问题

1)系统与子系统
2)模块与组件
3)框架与架构

02 | 系统与子系统

1、定义

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

2)子系统:子系统是由一群有关联的个体组成的系统,多半会是更大系统的一部分。

3)注:子系统的定义和系统定义是一样的,只是观察的角度有差异,一个系统可能是另外一个更大系统的子系统。

2、系统的关键内容

1)关联:系统是由一群有关联的个体组成的,没有关联的个体堆在一起不能成为一个系统。例如汽车就是一个系统,有发动机、车轮等组成。

2)规则:系统内的个体需要按照指定的规则运作,而不是单个个体各自为政。规则规定了系统内个体分工和协作的方式。例如汽车发动机产生动力。

3)能力:系统能力与个体能力有本质的差别,系统能力不是个体能力之和,而是产生了新的能力。例如汽车能够载重前行,发动机则不行。

03 | 模块与组件

1、按角度拆分

1)模块和组件都是系统的组成部分,只是从不同的角度拆分系统而已。
2)模块:从逻辑角度来拆分系统后,得到的单元就是“模块”。
3)组件:从物理角度来拆分系统后,得到的单元就是“组件”。

2、按目的划分

1)划分模块的主要目的是职责分离;划分组件的主要目的是单元复用。
2)组件的英文component,可以译为“零件”,它是一个物理的概念,并且具备“独立且可替换”的特点。

3、一个例子,学生信息管理系统

1)从逻辑角度拆分:“登陆注册模块”、“个人信息模块”。
2)从物理角度拆分:Nginx、Web服务器、MySQL。

04 | 框架与架构

1、定义

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

2)软件架构:指软件系统的“基础结构”,创造这些基础结构的准则,以及对这些结构的描述。

3)区别:框架关注的是“规范”,架构关注的是“结构”。
4)框架:Framework;架构:Architecture。

2、软件框架的关键部分

1)框架是组件规范。
2)框架提供基础功能的产品。

05 | 小结

1、架构重新定义:软件架构指软件系统的顶层结构。

2、 系统与子系统:系统是由一系列有关联,按特定规则组成的个体,并且产生新的能力,而系统与子系统则是观察的交角度不同。

3、 模块与组件:模块是从逻辑角度去看待,而组件是从物理角度去看待。

4、框架与架构:框架是规范也是约束,可以理解为封闭性的话题,定义好,让别人如何去使用,而架构是一种结构,是一种开放性的话题,如何去设计组织架构,如何让架构更具有拓展性,减少沟通错误成本。

06 | 思维导图

1、基础架构-架构理论思维导图

参考文献:

[1] 李运华. 从0开始学架构[M]. 极客时间, 2018.

基础架构-架构理论简析相关推荐

  1. 为什么叫光呆公式光_光镊力学理论简析

    写完光镊的那篇科普文章后收到了很多针对文中细节部分的留言和私信,主要存在以下两方面的疑问: 非透明物体捕获为何困难. 如何突破衍射极限. 所以,准备写两个文章分别解释这两个问题,简要介绍下关于光镊的理 ...

  2. Stacked autoencoder理论简析

    出处:http://www.fengchang.cc/post/92 上次总结了了PCA的东西,提到PCA的目的主要是降维. stacked autoencoder也可以做类似的事情.然而讲stack ...

  3. Qualcomm Android camera 架构简析及如何debug

    一. Camera模组(CCM)介绍: CCM一般包含四大件: 镜头(lens).传感器(sensor).软板(FPC).图像处理芯片(DSP):     Camera的成像原理可以简单概括如下: 1 ...

  4. 什么是系统架构设计:关于架构演进理论

    什么是系统架构设计:关于架构演进理论 在过去软件开发过程发展的很长一段时间内,软件架构表现为一种集中式的单块(Monolithic)式,即先对系统进行分层,然后通过单个进程进行部署和维护,典型的分层体 ...

  5. java jdbc 教程_java JDBC系列教程之JDBC类的简析与JDBC的基础操作

    什么是JDBC? 概念:JAVA Database Connectivity Javas数据库连接,Java语言操作数据库接口,然后由各个数据库厂商去实现这个接口,提供数据库驱动java包,我们可以使 ...

  6. 搜狗词库爬虫(1):基础爬虫架构和爬取词库分类

    基础爬虫架构 基础爬虫框架主要包括五大模块:爬虫调度器.URL管理器.网页下载器.网页解析器.数据存储器. 爬虫调度器:启动.执行.停止爬虫,统筹其他模块的协调工作. URL管理器:管理已爬取的URL ...

  7. 从程序员到CTO的Java技术路线图 JAVA职业规划 JAVA职业发展路线图 系统后台框架图、前端工程师技能图 B2C电子商务基础系统架构解析...

    http://zz563143188.iteye.com/blog/1877266在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样 ...

  8. 常见算法基础题思路简析(六)-字符串篇

    2019独角兽企业重金招聘Python工程师标准>>> 常见算法基础题思路简析(六)-字符串篇 标签: algorithms [TOC] 本文对和 字符串 有关的常见算法基础题思路分 ...

  9. java职业发展路线图_从程序员到CTO的Java技术路线图 JAVA职业规划 JAVA职业发展路线图 系统后台框架图、前端工程师技能图 B2C电子商务基础系统架构解析...

    http://zz563143188.iteye.com/blog/1877266在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样 ...

最新文章

  1. 安装linux和windows双系统
  2. 用php写京东抢购,关于抢京东券高并发的问题?
  3. 性能优化之数据库和数据源连接池配置
  4. 贪婪算法在求解最短路径中的应用(JAVA)--Dijkstra算法
  5. Java自动化测试框架-11 - TestNG之annotation与并发测试篇 (详细教程)
  6. MySql学习10-----存储过程和函数
  7. 秘笈——掌控时间管理的工具
  8. [引]SQL帮助文档:使用 WAITFOR 使SQL语句停顿后执行
  9. 得力考勤机excel密码_考勤机
  10. OpenGL 中的 Render To Texture
  11. es文件搜索不到win7服务器,ES文件浏览器Win7局域网共享错误解决方案
  12. leetcode 904 水果成篮
  13. 北大计算机系赖陆程,北大计算机系一年级学生彭某从五楼阳台上跳下。彭某曾是一个相当聪明...
  14. 六年开发者亲测,简单好用的「免费」APP内测托管平台
  15. App和小程序开发成本对比
  16. 自定义返回上一步idea快捷键
  17. 历史上的今天——4月1日
  18. 实训3:网络信息筛选
  19. CSS 部分样式为什么有的浏览器(如:IE系列)无法呈现出来?
  20. 2022保密教育线上培训考试 05

热门文章

  1. JAVA房屋档案信息管理计算机毕业设计Mybatis+系统+数据库+调试部署
  2. java判断均线_EWMA:EWMA指数加权移动平均模型的Java实现
  3. 信息管理导论 | 信息资源系统管理
  4. intellij idea右键不能创建java class
  5. response.cookies
  6. 8Manage助力江河水电提升项目管理效益
  7. 为什么别人的抖音那么多赞,抖音怎么提升点赞
  8. 毕然:莫让羞辱成为一种社会惯例
  9. openGL+Python=PyopenGL模块
  10. 利用Sen2Cor插件对哨兵二号数据进行预处理错误