如果你是一个程序员,那么你一定经常听到或使用这三个词:编程模型、编程框架、编程脚手架。它们都是和编程相关的概念,但是它们之间有什么区别呢?为什么我们需要它们呢?本文将为你解答这些问题,并且通过一些例子和图片来帮助你更好地理解它们。
编程模型
编程模型是对编程的共性的抽象,主要是方法与思想。编程模型可以指导我们如何设计和组织代码,以实现特定的功能或解决特定的问题。编程模型可以包含编程框架,但也需要包含公共的支撑服务和能力服务,可以完整构建一套运行时实例 。
例如,对于后端开发,我们可以使用微服务这样的编程模型,它提供了一套完整的后端运行时框架,以及各种公共服务和能力服务,如服务注册与发现、负载均衡、熔断降级、配置中心等。这就像是一个大工厂,里面有各种各样的机器、原料、工具和流水线,让我们可以高效地生产出各种产品。
编程框架
编程框架是一种特定的编程模型,它指包含前后端一体的标准开发框架,提供一定的约束、规范、配置,具备通用业务的基础开发能力,提供一定程度的组件、工具等公共封装 。
例如,对于后端开发,我们可以使用Spring Boot这样的编程框架,它基于Java技术栈,提供了一套标准的开发规范和配置,以及各种通用业务组件和工具,如数据库访问、缓存管理、安全认证等。这就像是一个小厨房,里面有各种常用的厨具、食材、调料和菜谱,让我们可以方便地做出各种常见的菜肴。
编程脚手架
编程脚手架是一种辅助性的工具,它更多是对开源技术的整合应用,封装程度较低,偏向于一套技术最佳实践 。编程脚手架可以帮助我们快速搭建项目结构和基础配置,以及提供一些常用的命令和功能。
例如,对于后端开发,我们可以使用Spring Initializr这样的编程脚手架,它可以快速创建一个基于Spring Boot的项目,并提供了一些常用的命令和功能,如启动应用服务器、打包构建、运行测试等。这就像是一个刀具套装,里面有各种刀具和功能,让我们可以快速地切割各种食材。
关系与区别
从上面的介绍可以看出,编程模型、编程框架、编程脚手架三者之间有以下关系与区别:
- 编程模型是最抽象和最广泛的概念,它包含了编程框架,并且还需要包含公共服务和能力服务。
- 编程框架是一种特定的编程模型,它提供了一套标准的开发框架和通用业务能力。
- 编程脚手架是一种辅助性的工具,它更多是对开源技术的整合应用和最佳实践。
- 编程模型、编程框架、编程脚手架三者都可以帮助我们提高开发效率和质量,但是它们之间也有不同的侧重点和适用场景。
下面用一个表格来对比三者的主要特点:
特点 | 编程模型 | 编程框架 | 编程脚手架 |
---|---|---|---|
抽象层次 | 高 | 中 | 低 |
封装度 | 低 | 高 | 中 |
约束性 | 低 | 高 | 中 |
灵活性 | 高 | 中 | 高 |
学习成本 | 中 | 高 | 低 |
举个栗子🌰
假设你要建造一座房子,你需要有一些基本的材料和工具,比如砖头、水泥、钢筋、锤子、钉子等。这些就相当于编程语言和基础库,比如 Java、Spring、MyBatis 等。
但是你不能随意地把这些材料和工具拼凑在一起,你需要有一个设计图纸,告诉你怎么样才能把这些材料和工具组合成一个完整的房子。这个设计图纸就相当于编程模型,比如 MVC、RESTful、AOP 等。
有了设计图纸,你还需要有一些模板和规范,告诉你怎么样才能把设计图纸实现成具体的房子。比如,你需要知道怎么样才能把砖头和水泥砌成墙,怎么样才能把钢筋和水泥铺成地板,怎么样才能把锤子和钉子固定门窗等。这些模板和规范就相当于编程框架,比如 Spring MVC、Spring Boot、Spring Cloud 等。
有了模板和规范,你还需要有一些工具和设备,帮助你快速地完成建造过程。比如,你需要有一个混凝土搅拌机,帮助你把水泥和沙石混合成混凝土;你需要有一个吊车,帮助你把重物从地面吊到高处;你需要有一个电钻,帮助你在墙上打孔等。这些工具和设备就相当于编程脚手架,比如 Maven、Gradle、Spring Initializr 等。
所以,编程模型、编程框架、编程脚手架三者的关系就像是设计图纸、模板规范、工具设备三者的关系。它们都是为了帮助我们更好地完成编程任务而提供的一些指导和支持。
再举个栗子🌰
假设我们要开发一个电商网站,我们可以选择以下的编程模型、编程框架、编程脚手架:
- 编程模型:微服务,它提供了一套完整的后端运行时框架,以及各种公共服务和能力服务,如服务注册与发现、负载均衡、熔断降级、配置中心等。
- 编程框架:Spring Boot,它基于Java技术栈,提供了一套标准的开发规范和配置,以及各种通用业务组件和工具,如数据库访问、缓存管理、安全认证等。
- 编程脚手架:Spring Initializr,它可以快速创建一个基于Spring Boot的项目,并提供了一些常用的命令和功能,如启动应用服务器、打包构建、运行测试等。
总结
编程模型是最外层的概念,它包含了编程框架和公共服务和能力服务。编程框架是中间层的概念,它包含了通用业务能力和组件和工具。编程脚手架是最内层的概念,它包含了项目结构和基础配置和命令和功能。
希望本文能够帮助你更好地理解这三者之间的异同,并且在实际开发中能够根据不同的需求和场景,选择合适的编程模型、编程框架、编程脚手架来提高开发效率和质量。如果你觉得本文有用,请给我一个赞或者留言吧!