框架VS架构,看两者异同
框架是和架构比较相似的概念,而且两者有着较强的关联关系,所以在实际工作中,很多时候这两个概念并不是分得那么清晰,参考维基百科,框架的定义如下:
软件框架(Software Framework)
通常指的是为了实现某个业界标准或者完成特定基本任务的软件组件规范,也指为了实现某某个软件组件规范时,提供规范做要求之基础功能的软件产品。
框架
是组件规范,比如:MVC就是一种常见的开发规范,类似的有MVP、MVVM、J2EE等框架。
框架提供基础功能的产品。比如:Spring MVC是MVC的开发框架,除了满足MVC的规范,Spring提供了很多基础功能来帮助我们实现功能,包括注解@Controller,Spring Security,Spring JPA等很多功能。
参考维基百科,这里简单的翻译为软件架构师指软件系统的“基础结构”,创造这些基础结构的准则,以及对这些结构的描述。
单从定义的角度来看,框架和架构的区别还是比较明显的,框架关注的是规范,架构关注的是结构。框架的英文是Framework ,架构的英文是Architecture。Spring MVC的英文文档标题是Web Framework,包目录也有framework。
尽管如此,在实际工作中我们却经常碰到一些似而非似的说法,比如:
我们的系统吃MVC架构 我们需要将Android App重构 MVP架构 我们的系统基于SHH框架开发 我们的系统是SHH的架构
以上几种说法到底是对还是错呢?
其实以上说法都是对的,造成这种现象的根本原因隐藏于架构的定义中,关键字“基础结构”,这个概念并没有很明确的说清楚从什么角度来讲的,从不同的角度或者维度,可以将系统划分为不同的结构,其实我们再“模块与组件”中的样例已经暗含了这点,继续以学生信息管理系统为例。
从业务逻辑的角度分解,”学生信息管理系统“的架构如下:
从物理部署的角度分解,“学生信息管理系统”的架构如下:
从开发规范的角度分解,“学生信息管理系统”可以采用标准的MVC来开发,因此架构又变成了MVC架构了,如下图:
以上这些架构 ,都是学生信息管理系统正确的架构,只是从不同的角度来分解而已。
- .NET 云原生架构师训练营(模块二 基础巩固 MVC终结点)--学习笔记
- 黑/客SQL/注/入入/侵网站实战(1)—成功渗/透台湾某净化设备公司官网
- .NET 云原生架构师训练营(模块二 基础巩固 路由与终结点)--学习笔记
- 苏宁易购Android架构演进史
- 七行JSON代码将你的网站变成移动应用
- grafana 的主体架构是如何设计的?
- .NET 云原生架构师训练营(模块二 基础巩固 REST && RESTful)--学习笔记
- 程序员专属的免费电子书下载网站,你知道你几个?
- 网站配置Gittalk教程和解决gittalk的Error: Not Found.问题
- 作为字节跳动第六名前端,谈谈公司扁平化架构育人的道与术
- .NET 云原生架构师训练营(模块二 基础巩固 配置)--学习笔记
- .NET 云原生架构师训练营(模块二 基础巩固 日志)--学习笔记
- 在瀑布下用火焰烤饼:三步法助你快速定位网站性能问题(超详细)
- 面向架构编程
- 再小的应用也有架构,面向架构新手的架构实践!
- Kubernetes实战指南(三十四): 高可用安装K8s集群1.20.x
- 1分钟部署一个属于自己的网站,借助云开发静态网站部署属于自己的网站
- 海量数据架构下如何保证Mycat的高可用?
- 工商银行基于 Dubbo 构建金融微服务架构的实践-服务发现篇
- .NET 云原生架构师训练营(模块二 基础巩固 引入)--学习笔记