软件架构、框架、模式、模块、组件、插件、中间件一文打尽

一、架构软件架构(software architecture)是一系列相关的抽象模式 , 用于指导大型软件系统各个方面的设计 。软件架构是一个系统的草图 。软件体系结构是构建计算机软件实践的基础 。也称为软件体系结构 , 简单地说就是一种设计方案 , 将用户的不同需求抽象成组件 , 且能够描述组件之间的通信和调用 。软件架构会分析工程中的问题 , 针对问题设计解决方案 , 针对解决方案分析应具有的功能 , 针对功能设计软件系统的层次和模块及层次模块之间的逻辑交互关系 , 确定各个功能如何由这些逻辑实现 。开发人员可以根据软件架构分析出来的层次和架构进行软件编写 。
架构可以类比于硬件里面的拓扑图 , 而架构根据展示的内容不同又可以分为应用架构、业务架构、技术架构、数据架构 。
 

  • 应用架构
 
软件架构、框架、模式、模块、组件、插件、中间件一文打尽

文章插图
 
  • 技术架构
 
软件架构、框架、模式、模块、组件、插件、中间件一文打尽

文章插图
 
  • 业务架构
 
软件架构、框架、模式、模块、组件、插件、中间件一文打尽

文章插图
 
  • 数据架构

软件架构、框架、模式、模块、组件、插件、中间件一文打尽

文章插图
 
二、框架软件框架(software framework) , 通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范 , 也指为了实现某个软件组件规范时 , 提供规范所要求之基础功能的软件产品 。
软件框架 , 是软件开发过程中提取软件的共性部分形成的体系结构 。框架不是现成可用的应用系统 , 而是一个半成品 , 是一个提供了诸多服务 , 供开发人员进行二次开发 , 实现具体功能的程序实体 。
框架与架构的关系:框架不是架构 , 框架比架构更具体 , 更偏重于技术 , 而架构更偏重于设计;架构可以通过多种框架来实现 。
举个例子 EXPRESS 框架:Express是一个基于Node平台的web应用开发框架 , 它提供了一系列的强大特性 , 帮助你创建各种Web应用 。
可以使用npm install express命令进行下载 。
提供了方便简洁的路由定义方式
对获取HTTP请求参数进行了简化处理
对模板引擎支持程度高 , 方便渲染动态html页面
提供了中间件机制有效控制HTTP请求
拥有大量第三方中间件对功能进行扩展
【软件架构、框架、模式、模块、组件、插件、中间件一文打尽】 
三、模式设计模式强调的是一个设计问题的解决方法 , 是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结 。
框架与设计模式的关系:设计模式研究的是对单一问题的设计思路和解决方法 , 一个模式可应用于不同的框架和被不同的程序语言所实现;而框架则是一个应用的体系结构 , 是一种或多种设计模式和代码的混合体 。设计模式的思想可以在框架设计中进行应用 。
架构与设计模式的关系:设计模式研究的是对单一问题的设计思路和解决方法 , 范畴比较小;而架构是高层次的针对体系结构的一种设计思路 , 范畴比较大 。一个架构中可能会出现多个设计模式的思想 。
 
四、模块根据不同的标准 , 通常会说程序模块或功能模块 , 程序模块指的是一段能够实现某个目标的成员代码段 , 功能模块则用来说明一个功能所包含的系统行为 。定义模块的原则是:高内聚和低耦合 。
软件架构、框架、模式、模块、组件、插件、中间件一文打尽

文章插图
 
五、组件组件是封装了一个或多个程序模块的实体 。组件强调的是封装 , 利用接口进行交互 。组件也称为构建 。插件是组件的一个子类 , 就是将组件中具有某些特点的组件归为插件 。
软件架构、框架、模式、模块、组件、插件、中间件一文打尽

文章插图
 
六、插件插件属于组件 , 插件是组件的一个子类 , 就是将组件中具有某些特点的组件归为插件 。插件是一种电脑程序 , 通过和应用程序的互动 , 来为应用程序增加一些特定的功能 , 仅靠插件是无法正常运行的 , 需要依赖于应用程序才能发挥自身功能 。插件和应用程序之间通过接口进行交互 。


推荐阅读