大家帮我看看,这代码是水平。。

2021-12-09 14:54:02 +08:00
 Wsdba

刚接手的一个项目,发现这个人很喜欢这样写。

19251 次点击
所在节点    Java
159 条回复
chihiro2014
2021-12-10 10:13:15 +08:00
这代码写得好,让人有工作量
Cloutain
2021-12-10 10:16:22 +08:00
可读性还行 ,反正编译器会合并条件
chenyu0532
2021-12-10 10:16:36 +08:00
没有注释,没有 log
除了这两个我不觉得有什么不妥。
可改进,但是个人感觉意义不大
接手的人不用费脑子一看就能明白
hejw19970413
2021-12-10 10:18:01 +08:00
第一点 : 两个函数高度相似能不能合并成一个
第二点 : 可以先行判断的前提条件可以提到前面部分
第三点 : 可以直接返回的判断是不是可以不用嵌套

我感觉简单改可以按这个改 。
sky101001
2021-12-10 10:18:43 +08:00
又不是看不懂
要求项目代码的每一行都经得起推敲才是强人所难,屎山是在所难免的,这种算不上好代码,但好歹一眼就能看懂,没必要特地拎出来说
hakr
2021-12-10 10:20:27 +08:00
@starsky007 #19 是的, 我也喜欢这样写, 先逆向判断, 先处理逻辑少的条件
SS0001
2021-12-10 10:22:47 +08:00
也不用过度考虑简化,像楼上说的,简化也要看值不值嘛。
非要说优化的话 图 1 已经很多朋友说了,图二的话我个人认为改用 try catch 也可以。
private boolean changePartyPositions(String member1, String member2, String position...) {
boolean flag = false;
try {
JSONObject member1Json = partyMemberDao.getInfoById(member1);
JSONObject memberPositionsInfo = memberPositionsDao.getInfo(member1, p...);
flag = memberPositionsDao.delete(member1, positionName, org, updateT...)
} catch (NullPointerException e) {
// do nothing.
}
return flag;
}
shawnsh
2021-12-10 10:31:51 +08:00
如果没有事情干,可以换种写法
ganbuliao
2021-12-10 10:32:11 +08:00
//个人喜欢的逻辑 觉得更符合阅读习惯
if (member2 == null && member1 != null) {
return changepartypositlons();
}
if (member2 != null && !member2.equals(member1)) {
return changepartypositlons();
}
return false;
hakr
2021-12-10 10:58:36 +08:00
yl666
2021-12-10 11:11:54 +08:00
这种代码风格是把自己需要用到的场景写出来了,剩下的全是一个场景,有些考虑不到的场景就很容易走到 else 里面,造成 bug ,我更喜欢把所有场景列出来的方式来写
anonydmer
2021-12-10 11:12:19 +08:00
其实楼主第二章图没贴全,导致大家优化不彻底
hakr
2021-12-10 11:17:17 +08:00
leokino
2021-12-10 13:03:16 +08:00
@liuzhaowei55 你没理解我的意思,绝大部分情况下这种条件判断粗略看过就可以了,本身就已经非常清楚了,类似这样的代码过多,说明你要多阅读数倍的代码量,才能理解整体代码的意思,实际上大大降低了可读性。
Quarter
2021-12-10 13:08:29 +08:00
我觉得挺好的啊,条理清晰的,方便阅读
crayygy
2021-12-10 13:08:59 +08:00
append 一个代码版本的? 图片似乎丢失了(还是我这里 load 不出来...
comoyi
2021-12-10 13:13:58 +08:00
结构清晰,按最细粒度划分分支,对未来的变更留了空间,之后迭代只要加 else 代码不需要改 if 条件代码
aguesuka
2021-12-10 13:45:29 +08:00
@xuanbg 可以直接用 Objects.equals, 这个函数可以代替 StringUtils.equals
tqrj
2021-12-10 14:21:34 +08:00
下面居然有评论觉得这样写挺好的 /。。。。+
28Sv0ngQfIE7Yloe
2021-12-10 14:50:29 +08:00
咱先不说条件判断

这个 member 1 、member2 大家都能忍受吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/821118

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX