Vue.js+Spring Boot全栈开发实战
上QQ阅读APP看书,第一时间看更新

1.3 Vue.js+Spring Boot全栈开发架构的优势

Vue.js+Spring Boot全栈开发架构在企业级应用中被广泛采用,总结起来其具备以下优势。

1. 开源

正如1.1节和1.2节所述,无论是Vue.js、Spring Boot这两种核心技术还是Naive UI、md-editor-v3、Nginx、Spring Security、Spring MVC、Spring Data、Hibernate、H2、MySQL等周边技术,Vue.js+Spring Boot全栈开发架构中所有的技术都是开源的。

开源技术相对闭源技术而言,有其优势:一方面,开源技术的源码是公开的,互联网公司在考察某项技术是否符合自身开发需求时,可以对源码进行分析;另一方面,开源技术商用的成本相对比较低,这对于很多初创的互联网公司而言,可以节省一大笔技术投入。因此Vue.js+Spring Boot全栈开发架构被称为开发下一代大型Web应用的“平民英雄”。

当然,开源技术是把“双刃剑”,能够看到源码,并不意味着可以解决所有问题。开源技术在技术支持上不能与闭源技术相提并论,毕竟闭源技术有成熟的商业模式,会提供完善的商业支持。而开源技术更多依赖于社区对于开源技术的支持。如果在使用开源技术的过程中发现了问题,用户可以反馈给开源社区,但开源社区不能保证在什么时候、什么版本能够修复发现的问题。所以使用开源技术时,开发团队需要对开源技术有深刻的了解,最好能够“吃透”源码,这样在发现问题时,就能够及时解决源码上的问题。

例如,在关系型数据库方面,同属于Oracle(甲骨文)公司的MySQL数据库和Oracle数据库就是开源技术与闭源技术的两大代表,两者占据了全球数据库的占有率排行的前两名。MySQL数据库主要被小、中型企业或者云计算供应商采用,而Oracle数据库则由于其稳定、高性能的特性,深受政府和银行等客户的信赖。

2. 跨平台

跨平台意味着开发和部署应用的成本低。

试想一下,当今操作系统“三足鼎立”,分别是Linux、macOS、Windows,如果开发人员需要针对不同的操作系统平台开发不同的软件,那么开发成本势必会非常高,而且每个操作系统平台都有不同的版本、分支,仅仅做不同版本的适配都需要耗费极大的人力,更别提要针对不同的平台开发软件了。因此跨平台可以节省开发成本。

同理,由于使用Vue.js+Spring Boot全栈开发架构开发的软件是具有跨平台特性的,开发人员无须担心在部署应用过程中的兼容问题。开发人员在本地开发环境所开发的软件,理论上是可以通过持续集成的方式直接部署到生产环境中,因而可以节省部署的成本。

Vue.js+Spring Boot全栈开发架构具备的跨平台特性,使其非常适合构建Cloud Native应用,特别是在当今容器常常作为微服务的宿主的情况下,而Vue.js+Spring Boot全栈开发架构的应用是支持通过Docker部署的。

有关Cloud Native方面的内容,读者可以参阅笔者所著的《Cloud Native分布式架构原理与实践》。

3. 辅助全栈开发

类似于系统架构师,全栈开发人员应该比一般的软件工程师具有更广的知识面,是拥有全栈软件设计思维并掌握多种开发技能的复合型人才,能够独当一面。相比于Spring Boot工程师、Vue.js工程师偏重某项技能而言,全栈开发人员必须掌握整个应用架构的全部细节,要能够从零开始构建全套完整的企业级应用。

一名全栈开发人员,在开发时往往会做如下问题的预测,并做好防御。

  • 当前所开发的应用会部署到什么样的服务器、网络环境中?
  • 服务在哪里可能会崩溃?为什么会崩溃?
  • 应用是否应该适当地使用云存储?
  • 程序是否具备数据冗余?
  • 应用是否具备可用性?
  • 界面是否友好?
  • 性能是否能够满足当前的要求?
  • 哪些位置需要加日志,以方便通过日志排查问题?

除上述问题的预测外,全栈开发人员要能够建立合理的、标准的关系模型,包括外键、索引、视图、查找表等。

全栈开发人员要熟悉非关系数据存储,并且知道它们相对关系数据存储的优势所在。

当然,人的精力毕竟有限,所以成为全栈开发人员并非易事。但Vue.js+Spring Boot全栈开发架构让这成为可能。Vue.js+Spring Boot全栈开发架构以Vue.js和Spring Boot为整个技术栈的核心,Vue.js采用的编程语言是TypeScript(类JavaScript),而Spring Boot采用的编程语言是Java,这意味着,开发人员只需要掌握JavaScript和Java这两种编程语言,即可掌握Vue.js+Spring Boot全栈开发架构的所有技术,这不得不说是全栈开发人员的“福音”。

4. 支持企业级应用

无论是Spring Boot、Vue.js还是MySQL,这些技术在大型互联网公司都被广泛采用。无数应用也证明了Vue.js+Spring Boot全栈开发架构是非常适合用来构建企业级应用的。企业级应用是指那些为商业组织、大型企业而创建并部署的解决方案。大型企业级应用的结构复杂,涉及众多外部资源、事务密集、数据量大、用户数多,有较高的安全性要求。

Vue.js+Spring Boot全栈开发架构用于开发企业级应用,不但具有强大的功能,还能够满足未来业务变化的需求,使其易于升级和维护。

更多有关企业级应用开发方面的内容,读者可以参阅笔者所著的《Spring Boot企业级应用开发实战》《Vue.js 3企业级应用开发实战》《Node.js企业级应用开发实战》《Angular企业级应用开发实战》等。

5. 支持构建微服务

微服务(Microservices)架构风格就像是把小的服务开发成单一应用的形式,运行在自己的进程中,并采用轻量级的机制(一般是HTTP资源接口)进行通信。这些服务围绕业务功能来构建,通过全自动部署工具来实现独立部署。这些服务可以使用不同的编程语言和不同的数据存储技术,并保持最小化集中管理。

Vue.js+Spring Boot全栈开发架构非常适合构建微服务,原因如下。

  • Spring Boot本身提供了跨平台的能力,可以运行在自己的进程中。
  • Spring MVC易于构建Web服务,并支持HTTP(Hypertext Transfer Protocol,超文本传送协议)通信。
  • Spring Boot+MySQL具备从前端到后端,再到数据存储的全栈开发功能。

开发人员可以轻易地通过Vue.js+Spring Boot全栈开发架构来构建并快速启动一个微服务应用。业界也提供了成熟的微服务解决方案(例如Tars.js、Seneca等)来打造大型微服务架构系统。

有关微服务方面的内容,读者可以参阅笔者所著的《Spring Cloud微服务架构开发实战》。

6. 业界主流

Vue.js+Spring Boot全栈开发架构所涉及的技术都是业界主流,主要体现在以下几方面。

  • MySQL在开源关系型数据库的占有率方面是排行第一的,而且用户量还在递增。
  • 只要掌握Java就必然需要掌握Spring Boot,而Java是开源界最流行的开发语言之一。
  • Vue.js是目前前端组件化开发中比较主流的方式。Nginx也是目前使用非常广泛的代理服务器。