我们之前有一个Java后端项目,但一直是野蛮生长的状态,简单粗暴地堆叠功能,没有经过良好的设计,没有制定统一的开发规范,每个人的代码都是不同的样子,每个人不会也不敢复用别人的代码,这些问题导致后续的开发、维护越来越艰难、低效。
我现在是公司内部信息化的技术负责人,从长远考虑,我认为有必要通过架构设计来解决这些问题,提升软件质量和团队效率。
经过分析评估,基本技术选型如下:
- 新起项目。 原因:仔细评估后发现,新的架构设计无法在老项目上实施,必然会遭遇无数兼容性问题,我们开发资源不够,不足以充分解决这些问题,那么必然会导致新旧代码都受影响。新起项目可以甩开历史包袱,旧代码按需逐步迁移即可。
- 单体项目。 原因:考虑现有的业务量、用户规模和开发资源,单体项目是足够的。微服务等分布式架构,目前不适合,强行上反而会使问题复杂化。
- 编程语言:Java 21。 原因:现有系统使用Java开发,现有人员擅长Java,因此语言选择Java。Java 21是当前最新LTS版本,有很多易用的新特性,值得拥抱新技术。
- 开发框架:Spring Boot 3,MyBatis。 原因:业界最常用,熟悉。选用框架的最新版本。
我将新项目的名称定为backend,意在作为以后的统一后端项目。
本项目将首要解决良好设计、开发规范、代码复用等过去的痼疾,提升软件的正确性、可维护性。配合团队管理(统一思想培训、代码评审等),本项目从诞生起就要严格控制代码的准入门槛,并以每一个实际需求为案例,不断迭代、优化架构设计。