刚入职第一天,看了公司代码,直接“干”沉默了!

入职第一天就干活的,就问还有谁,搬来一台N手电脑,第一分钟开机,第二分钟派活,第三分钟干活,巴适。。。

图片

打开代码发现问题不断

1.读取配置文件居然读取两个配置文件,一个读一点,不清楚为什么不能一个配置文件进行配置

图片

一边获取WEB-INF下的配置文件,一边用外部配置文件进行覆盖,有人可能会问既然覆盖,那可以全在外部配置啊,问的好,如果全用外部配置,咱们代码获取属性有的加上了项目前缀(上面的两个put),有的没加,这样配置文件就显得很乱不可取,所以形成了分开配置的局面,如果接受混乱,就写在外部配置,不能全写在内部配置,因为

推荐划水摸鱼地址:

https://www.yoodb.com/slack-off/home.html

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引pom,而pom里面却是另一个pom文件,没有生成的jar供引入,是的,我们可以在dependency里加上

<type>pom</type>

来解决这个问题,但是公司内的,而且实际也是引入这个pom里面的jar的,我实在不知道这么做的用意是什么,有谁知道;求教

以上这些都是我最近一家公司出现的问题,除了默默接受还能怎么办;

那有什么优点呢:

  • 不用太怎么写文档

  • 束缚很小

  • 学到了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. **理解需求和设计**:确保对项目需求有深入理解,明确功能目标。学会编写清晰的设计文档或注释,以便其他人能理解你的代码意图。 2. **遵循编码规范**:每个项目可能有不同的编码标准,比如命名规则、缩进、注释风格等。遵循这些规范可以使代码更易读且维护。 3. **模块化编程**:将复杂的问题拆分成小而可复用的功能模块,这有助于代码结构清晰,易于测试和扩展。 4. **代码可读性**:保持简洁,避免过度复杂嵌套。使用有意义的变量名,结构清晰的函数和类设计。 5. **单元测试**:编写测试用例以确保代码的正确性,这对于发现并修复错误非常关键。 6. **不断学习**:阅读他人代码,参与开源项目,了解最佳实践和技术趋势。学习数据结构和算法,这会提升代码效率。 7. **版本控制**:熟练使用 Git 等版本控制系统,定期提交代码并记录每次修改的说明。 8. **性能优化**:关注代码性能,学会使用性能分析工具找出瓶颈并进行改进。 9. **代码审查**:请求同事或导师进行代码审查,他们可能会提供有价值的反馈。 10. **持续集成/持续部署(CI/CD)**:自动化构建和部署流程,保证代码快速迭代并保持稳定。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值