作者:小红帽的大灰狼
来源:juejin.cn/post/7371986999164928010
入职第一天就干活的,就问还有谁,搬来一台N手电脑,第一分钟开机,第二分钟派活,第三分钟干活,巴适。。。
打开代码发现标题不停
1.读取配置文件居然读取两个配置文件,一个读一点,不清楚为什么不能一个配置文件进行配置
一边获取WEB-INF下的配置文件,一边用外部配置文件进行覆盖,有人大概会问既然覆盖,那可以全在外部配置啊,问的好,如果全用外部配置,咱们代码获取属性有的加上了项目前缀(上面的两个put),有的没加,这样配置文件就显得很乱不可取,以是形成了分开配置的局面,如果接受混乱,就写在外部配置,不能全写在内部配置,因为- prop_c.setProperty(key, value);
复制代码 value获取外部配置为空的时候会抛出异常,properties底层集适用的是hashTable- public synchronized V put(K key, V value) {
- // Make sure the value is not null
- if (value == null) {
- throw new NullPointerException();
- }
- }
复制代码 2.很多参数写死在代码里,如果有改动,工作量会变得异常庞大,举例权限方面伪代码- role.haveRole("ADMIN_USE")
复制代码 3.日志打印居然sout和log混淆双打
先不说双打的事,对于上图这个,应该输出包罗堆栈信息,不然定位标题很贫苦,有人大概会说e.getMessage()最好,可是生产标题看多了发现还是打堆栈好;
还有如果不是定向返复书息,仅仅是记载日志,完全没须要catch多个异常,一个Exception充足了,不知道原作者这么写的意思是啥;还是就是打印日志要用logger,用sout打印在控制台,那我日志文件干啥;
4.提交的代码没有技能经理把关,下发生产包是个人就可以发导致生产环境代码和本地代码或者数据库数据出现不一致的现象,数据库数据的同步是生产最轻易忘记执行的一个事情;好比我的这家公司上传文件模板变化了,但是没同步,导致出标题时开辟环境复现标题真是贫苦;
5.随意更改生产数据库,出不出标题全靠开辟的职业素养;
6.Maven依赖的标题,Maven引<type>pom</type>,而<type>pom</type>里面却是另一个<type>pom</type>文件,没有生成的jar供引入,是的,我们可以在dependency里加上来解决这个标题,但是公司内的,而且现实也是引入这个<type>pom</type>里面的jar的,我实在不知道这么做的用意是什么,有谁知道;求教
Spring Boot 底子就不介绍了,推荐看这个实战项目:
https://github.com/javastacks/spring-boot-best-practice
以上这些都是我最近一家公司出现的标题,除了默默接受还能怎么办;
那有什么优点呢:
- 不用太怎么写文档
- 束缚很小
- 学到了js的全局调用怎么写的
解决之道
怎么解决这些标题呢,起首对于现有的新项目或升级的项目来说,spring的application.xml/yml 完全可以写我们的配置,开辟环境没须要整外部文件,如果是生产环境我们可以在脚本或启动命令添加
nohup java -Dfile.encoding=UTF-8 -Dspring.config.location=server/src/main/config/application.properties -jar xxx.jar &
来告诉jar包引那里的配置文件;也可以加上动态配置,都很棒的,其次就是规范代码,养成良好的规范,跟着节奏,不要另辟蹊径;老诚实实的,如果原项目上迭代,不要动源代码,追加即可,没偶然间去重构的
更多文章推荐:
1.Spring Boot 3.x 教程,太全了!
2.2,000+ 道 Java面试题及答案整理(2024最新版)
3.免费获取 IDEA 激活码的 7 种方式(2024最新版)
觉得不错,别忘了随手点赞+转发哦!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |