微服务本身是一种架构风格,也是指导组织构建软件的一系列最佳实践集合。然而,业务团队在拆分应用后,会产生更多细粒度服务,并面临这些服务在分布式网络环境中的复杂性。如何专心实现业务逻辑而不陷入微服务架构的技术细节,对开发者来说是一大难题。
本章将介绍脚手架的概念,并介绍JVM环境下在技术成熟度、架构完整性、生态活跃度等方面都占据优势的微服务脚手架项目:SpringBoot。
脚手架介绍
什么是脚手架
脚手架是一种用在建筑领域的辅助工具,或者说是为了保证各施工过程顺利进行而搭设的工作平台,有兴趣的读者可自行查看维基百科上的定义。
对应到软件工程领域,脚手架可以解释为帮助开发人员在开发过程中使用的开发工具、开发框架,使用脚手架你无须从头开始搭建或者编写底层软件。下面的“脚手架”定义来自Stack Overflow,更加偏向于应用服务框架使用的一种编程思想或者说编程范式(供参考)。
脚手架:是一种元编程的方法,程序员编写一份规格说明书(Specification),用来描述怎样去使用数据库,然后由编译器脚手架根据这份规格说明书生成相应的代码,进行增、删、改、查等数据库的操作,在脚手架上更高效地建造出强大的应用。
为什么需要脚手架
为什么软件开发需要脚手架呢?我们通过软件开发的一些基本原则看一下脚手架对软件工程的重要作用。
● 复用原则(Reuse Principle):现在我们推崇的是极致化的编程体验,缩短的开发时间、大量的开发任务、支持需求的变更、高频率的应用服务交付,这些都给软件开发人员带来了前所未有的压力。其中,软件复用技术被公认为解决这些问题的行之有效的方法。从计算机软件编程的发展历史来看,从面向过程的编程语言到面向对象的高级编程语言的广泛使用,是软件复用技术进步的体现。从对象的复用到更大的组件复用,再到如今的框架的复用、服务的复用,都是在利用他人的优秀成果来放大你的工作价值。当一个新手使用脚手架时,对于一个具体问题,可以套用现成的解决方案加以扩展。使用脚手架的应用,仅需通过简单的注解和配置就可以具备健康状态检查、生产环境就绪、可观测等基本服务能力。对于一个业务逻辑问题,可以复用已有的逻辑,一步步迭代,敏捷开发。