让java攻城狮头疼的几个问题

119 阅读3分钟

让java攻城狮头疼的几个问题

做java做了四五年,我也说说以下我在这个阶段让我头疼的一些问题,这些问题不但指技术问题,实际上我们大多数的Java程序都是cv程序员、curd程序员、百度以下程序员,所以一般工作一年基本上在平时开发种很少遇到一些技术难题,或者遇到了直接绕开。说一说让我头疼的一下问题,大家也可以参考参考提前避坑

一:项目规范问题

问题描述: 如果一个项目被多人经手过,经历的版本比较多,那么这个项目的代码一定不看入目呀。主要体现在以下几个方面
1. 代码结构被破坏,比如存放静态变量的类,等工具类没有按照规定的结构存放;一个代码方法超过200行,极难维护。代码无注释等。
2. 数据库表、字段严重冗余,数据很难做到一致性,经常出现迷幻性的问题,字段冗余还好,我tam还遇见表都冗余的。。。。。状态字段在增加枚举值是没有同步维护注释信息,导致字段后期加了枚举值没加注释,后面的人接手,简直是要命的呀。

引起原因: 项目迭代次数多,经历过太多人的洗礼,公司没有严格的规范监管制度。 后期迭代的开发大多都是求速度不求质量。 导致代码没注释,为了不影响以前版本功能大家也不会动以前的代码。

解决方案: 项目代码质量把控需要落到具体责任人身上,并且偶尔进行质量检查,同时也可以引入代码质量检测工具比如sonar等工具。
数据库脚本也需要项目master统一过目。 研发对代码优化,会影响历史需求,增加测试时间。(没有公司会给成本做优化吧)

二:依赖版本太低

问题描述:
依赖版本太低,可能会遇到一些bug,或者是老版本 用法和新版本不一致,或者存在一些安全问题需要升级依赖,有些依赖升级迁一动百。举几个因为依赖过低引发的问题.。
1.因为mybatis版本过低,我的sql用了一个符号 mybaits 无法识别,mybaits没有直接抛这个错给我,我是跟了半天的源码才发现的。
2.mysql-connect-java 5.1.42 没有增加 spring.datasource.druid.connection-init-sqls=SET NAMES utf8mb4 配置,保存默写特殊符号如表情直接报错。
3.mq版本过低存在安全问题,但是升级的话需要spring boot 版本升级一个大版本。升级之后各种报错。项目集成了很多中间件。哎一言难尽呀。

引起原因: 版本太低了

解决方案 公司层面可以统一管理springboot 以及相关中间件版本,一定要及时统一升级。