什么是框架?
我个人觉得基础框架应该是屏蔽业务的底层的中间件,Java优秀的框架有SpringMvc, SpringBoot,在流行的微服务里面,优秀的框架有SpringCloud和Dubbo,都是能够很好的简化业务开发人员对底层技术的了解。
公司需要什么样的框架
公司之前的服务都是依赖于SpringBoot和SpringCloud的,但是大部分人员对于SpringBoot和SpringCloud的了解程度有限,只是按照网上的入门文章进行使用,我觉得不能发挥出这些框架的优秀能力,也增加了业务开发人员学习和了解的成本。
在看了公司内部大量的项目之后,发现大家都是依赖了一大堆SpringBoot和SpringCloud的依赖,每个项目都配置了10多个相关的依赖,并且版本也都不会统一。 为了减少项目的复杂度,所以决定要基于SpringBoot和SpringCloud进行再一次的封装,简化开发人员的使用成本。
框架需要的内容
- 框架版本的统一管理
- 框架容易升级
- 基于开源社区,能够对于底层依赖的SpringBoot和SpringCloud框架也进行快速升级
- 屏蔽非业务层面的所有配置
- 制定一些约定,来简化配置文件的编写的难度
- 统一服务文档、注册、发现、路由、日志、监控、度量、追踪服务等基础功能
- 各个模块可以由业务方自行选择使用,进行一定程度的打包出售,各个模块功能独立、并且不相互依赖
统一框架版本
- 因为框架是基于SpringBoot和SpringCloud的,所以我们选择简介按照SpringBoot的starter的开发模式进行开发,并且通过parent模式和dependencies模式来统一管理所有常用的第三方依赖。
- 各个模块进行有效的打包整合,从而然后完成starter的缩减,最后仅仅提供了少数几个starter(web、mysql、redis、kafka、job、wechat)来让业务根据具体情况进行选择。
- 不改变底层依赖第三方框架的使用方式,能够使得开发人员快速上手。
- 有快速的搭建项目的脚手架,能够快速开启一个新的项目并且完成部署。
- 统一环境变量,并且通过环境变量来统一通用配置,业务开发不需要对于非业务的通用配置进行了解。
- 制定发布流程,对于所有业务全部通过统一的发布流程进行发布,减少发布环节的人工介入。
网友评论