前言
博主最近接手一个需求,需求内容涉及到一个23年年底开始开发的项目。将代码大概过了一遍后,已经熟悉这个项目主要开发人员的代码风格,以下的示例代码均出自一个10+年工龄的老程序员之手。
示例1:
示例2:
示例3
示例4(方法一共124行,10层嵌套):
改造
挑一个比较有代表性的代码进行改造:
这段代码有三大特点:
1.if(boolean变量 == true)画蛇添足
2.if要执行的内容只有一行,不加括号
3.嵌套太深,从来不用条件反转先返回
改造内容:
1.‘xxx == true’ 简化成 ‘xxx’
2.为一行if添加{}
3.反转(values != null && !values.isEmpty()),先返回,以减少嵌套
3.long类型无需再转换成long类型
4.projectMap、teamMap、personMap使用putAll(xxx)添加元素
5.按照项目、团队、项目人员的顺序,改造projectInfos、teamInfos、projectPersonInfos的顺序,以及for循环里三个if的顺序
改造后:
波浪线全都消失了,舒服太多了
其余可以改造的地方:
1.单词拼写错误。考勤的单词attend,拼写成了attnd,并且数据库等其他地方全都是attnd,改动难度太大,将错就错。
2.入参List values,返回值List,list是传引用,内部对values操作,其实values里面的元素已经改变了,可以返回void,但是要改到应用到这个方法的地方。
后记
改造后的代码应该怎么样呢,提交git?
不!
代码能跑就不要动,改造后需要重新测试,并且改造这个代码不在我的职责范围,所以还原代码,不做任何修改。
如果有和我一样患了代码强迫症的后人看到这个代码,也许会发出和我一样的感叹:“这**谁写的屎山!”