美文网首页
架构学习-架构到底是什么?

架构学习-架构到底是什么?

作者: 代码足迹 | 来源:发表于2018-04-29 18:25 被阅读0次

1.系统与子系统

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

  • 关联:系统是由一群有关联的个体组成的,没有关联的个体堆在一起不能成为一个系统。例如,把一个发动机和一台 PC 放在一起不能称之为一个系统,把发动机、底盘、轮胎、车架组合起来才能成为一台汽车。

  • 规则:系统内的个体需要按照指定的规则运作,而不是单个个体各自为政。规则规定了系统内个体分工和协作的方式。例如,汽车发动机负责产生动力,然后通过变速器和传动轴,将动力输出到车轮上,从而驱动汽车前进。

  • 能力:系统能力与个体能力有本质的差别,系统能力不是个体能力之和,而是产生了新的能力。例如,汽车能够载重前进,而发动机、变速器、传动轴、车轮本身都不具备这样的能力。

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

以微信为例,可以看出他们的关系


系统(微信).png

2.模块与组件

软件模块(Module)是一套一致而互相有紧密关连的软件组织。它分别包含了程序和数据结构两部分。现代软件开发往往利用模块作为合成的单位。模块的接口表达了由该模块提供的功能和调用它时所需的元素。模块是可能分开被编写的单位。这使它们可再用和允许人员同时协作、编写及研究不同的模块。

软件组件定义为自包含的、可编程的、可重用的、与语言无关的软件单元,软件组件可以很容易被用于组装应用程序中。

模块:从逻辑的角度来拆分系统后的单元,目的是:职责分离
组件:从物理的角度来拆分系统后的单元,目的是:单元复用(可以理解为零件)

学生管理系统从模块划分:

学生管理系统从组件划分:

3. 框架与架构

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

框架是组件规范,框架提供基础功能的产品

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

从定义的角度来看,框架和架构的区别还是比较明显的,框架关注的是“规范”,架构关注的是“结构”。框架的英文是 Framework,架构的英文是 Architecture。

采用不同的角度或者维度,可以将系统划分为不同的结构

  • 从业务逻辑的角度分解,“学生管理系统”的架构是:

    1.png
  • 从物理部署的角度分解,“学生管理系统”的架构是:

    2.png
  • 从开发规范的角度分解,“学生管理系统”可以采用标准的 MVC 框架来开发,因此架构又变成了 MVC 架构:
3.png

4.总结

架构:指软件系统的顶层结构。

首先,“系统是一群关联个体组成”,这些“个体”可以是“子系统”“模块”“组件”等;架构需要明确系统包含哪些“个体”。

其次,系统中的个体需要“根据某种规则”运作,架构需要明确个体运作和协作的规则。

第三,维基百科定义的架构用到了“基础结构”这个说法,我改为“顶层结构”,可以更好地区分系统和子系统,避免将系统架构和子系统架构混淆在一起导致架构层次混乱。

5.注:

架构是顶层设计;
框架是面向编程或配置的半成品;
组件是从技术维度上的复用;
模块是从业务维度上职责的划分;
系统是相互协同可运行的实体。

框架是规矩,架构是按照规矩做规划。
系统是学校,子系统是班级,
模块是学生老师,
组件是课桌椅。

相关文章

  • 架构学习-架构到底是什么?

    1.系统与子系统 系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。它的意...

  • 架构第1章

    本文参考《极客时间》- 从0开始学架构 架构到底是什么? 架构和框架是什么关系? 系统与子系统:系统是由一系列有关...

  • 工程架构能力对于做好机器学习重要吗?

    摘要:做好机器学习到底对工程架构能力有要求吗?看看技术大牛如何说? 工程架构能力对于做好机器学习到底重要吗?可能很...

  • 我怎么才能成为一个软件架构师?

    什么是软件架构师 在我们一头扎入细节之前,我们先得知道软件架构和架构师到底是什么: 软件架构师是一个软件专家,他可...

  • jinhy学架构<1>

    开篇问题:(一定要带着目的去学习)架构和框架是什么关系?有什么区别?Linux有架构,MySQL有架构,JVM也有...

  • 架构漫谈系列一:从架构看Android客户端

    为什么要学习架构 首先我们要知道为什么要学习架构,无论是什么架构设计,其目的都是为了达到编码的最高境界——高内聚,...

  • Android老司机的开发架构思考及经验总结

    前言 架构设计,到底是什么呢?基于这段时间的学习和自己的一些思考,我认为架构是基于产品和技术所达成的一种共识。我不...

  • <<聊聊架构>>读后笔记

    聊聊架构这本书很有意思,作者在这本书中并没有讲解具体的技术解决方案,而是针对架构到底是什么、架构解决了什么问题、架...

  • Spring Cloud Alibaba 实战(三) - 微服务

    1 概述 1.1 单体架构vs微服务架构 单体架构是什么 微服务是什么 微服务特性 微服务全景架构图 微服务优缺点...

  • 工作五六年的阿里高级架构师初谈架构

    工作了很多年,架构也做了五六年。今天突然在思考什么是架构,为什么要做架构,架构怎么来做,架构到底是设计的还是演进的...

网友评论

      本文标题:架构学习-架构到底是什么?

      本文链接:https://www.haomeiwen.com/subject/otfalftx.html