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

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

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

18627 次点击
所在节点    Java
159 条回复
liuzhaowei55
2021-12-09 15:49:23 +08:00
有啥问题吗?判断逻辑清晰,没有复杂逻辑判断。
说实话代码降低心智负担才是真的重要
zjsxwc
2021-12-09 15:54:20 +08:00
@DreamingCTW
但是我反倒觉得合并条件到一个 if 中去后,反而更加烦躁,逃。。
EggplantLover
2021-12-09 15:57:20 +08:00
我觉得还好吧,能怎么精简呢,哪位大佬给个示范
DreamingCTW
2021-12-09 15:59:43 +08:00
@zjsxwc 我一眼看去挺清晰的....||左边一个条件,右边一个条件,也不算太复杂
vanton
2021-12-09 16:01:42 +08:00
if 套 if 的问题么?

这里套的也还好,不算太长。

不过最好不要这样多个 if 深层嵌套。
DreamingCTW
2021-12-09 16:04:05 +08:00
我也想看看有没有大佬来优化,因为我也经常写 if 非空判断,毕竟 Java 这个空指针异常挺恼火的
rming
2021-12-09 16:11:36 +08:00
if A and B:
return
if C:
return
return
ww940521
2021-12-09 16:13:56 +08:00
我觉得这样写挺好的逻辑一目了然,把判断条件合并起来反而看起来费劲,要去想有没有把所有的可能包含进去。一层一层判断不容易出现疏漏。我也想看看大佬优化。
gps949
2021-12-09 16:16:15 +08:00
还好吧?没看出有啥值得批判的问题。现代编译器 /解释器会对多级判断有自己的优化吧,不过是一个写 web 应用 crud 的,又不是开发编译器或操作系统,只要人读得感觉清晰,有必要非要炫技“人工优化”到一行跟 js 代码混淆一样吗?
zhouyg
2021-12-09 16:23:54 +08:00
if 套 if 其实没啥问题,跟业务逻辑对应就行
ToDyZHu
2021-12-09 16:24:11 +08:00
虽然我自己不太会写这种代码 但是我很喜欢改这种代码
ianEros
2021-12-09 16:25:56 +08:00
代码水平高应该是让应届生也能很快理解,而不是为了好看导致可读性差
arthas2234
2021-12-09 16:26:06 +08:00
if 判断逻辑简单越好,判断逻辑过长可以先把结果赋值给临时变量,变量名语义要清晰
包括里面的逻辑,也是越短越好,实在不能精简,就拆分成小的函数,方便阅读
善用 if-return:if(member != null) {...} => if(member == null) return;
变量名:flag ,a1 ,a2 之类的语义不清晰的就不要用了
pengtdyd
2021-12-09 16:26:10 +08:00
写代码的不厉害,会改别人的代码才是大佬。
selfcreditgiving
2021-12-09 16:32:11 +08:00
@starsky007 一直这么写的,这还有一个说法的啊
starsky007
2021-12-09 16:34:26 +08:00
@selfcreditgiving
一起这么写就好;《重构:改善既有代码的设计》这本书有提到这个概念,交流起来也方便些。
sue0917
2021-12-09 16:37:37 +08:00
最后他代码行数多,拿了个比你高的绩效
SheHuannn
2021-12-09 16:40:42 +08:00
这变量命名真是绝了,太直接了,像是机器人干的
chengkai1853
2021-12-09 16:51:49 +08:00
@SheHuannn 变量名并没什么问题吧?!一看函数就知道是更改成员位置信息的代码。
Tink
2021-12-09 16:52:16 +08:00
两层 if 还好吧

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

https://www.v2ex.com/t/821118

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

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

© 2021 V2EX