V2 的老哥们倾向哪种写法?
1
Jooooooooo 2021-12-04 15:05:49 +08:00
if else 最朴素的写法呀, 清晰永远都是第一要务.
后面改这块逻辑的人很可能还是你自己. |
2
autoxbc 2021-12-04 15:29:14 +08:00
() => {
switch(true) { case exp1 : case exp2 : case exp3 : return false ; } return true ; }; 这是我觉得最工整的写法 |
3
Building 2021-12-04 15:30:54 +08:00 via iPhone
guard … else {
return } guard … else { return } …… return true |
4
binux 2021-12-04 15:34:24 +08:00 via Android
你为什么要写或,写与条件不是更清晰吗?
|
5
cmdOptionKana 2021-12-04 15:45:02 +08:00
我选第二种,并且会加注释。第二种也更容易加注释。
|
6
noe132 2021-12-04 15:49:54 +08:00
|
7
MrGba2z 2021-12-04 15:57:07 +08:00
我个人的话:把第一个的 if 改成真值 > 第二个 > 第一个
|
8
wednesdayco OP @cmdOptionKana 感觉不是更方便注释,而是条件下有新增逻辑需求的时候不用拆条件。
|
9
cmdOptionKana 2021-12-04 16:26:36 +08:00
@wednesdayco 注释也很重要啊,第一种,以及 #6 @noe132 给出的写法,注释要怎么写,很难描述。
如果发现用人类语言很难描述,通常就可能有问题,而第二种很好描述 “如果审批不 OK ,就不用看别的因素,必然是个无效价格”……如此这般,每一个判断都非常清晰。 |
10
ZE3kr 2021-12-04 17:27:34 +08:00 via iPhone 1
return !(item.approvalStatus!==
STATUS.OK || item.isEffective Il (moment(orderTime) <= moment(item.endTime) && moment(orderTime) ›= moment(item.startTime))) |
11
zxCoder 2021-12-04 18:29:34 +08:00
我会选第二种,但是为什么不加花括号!!!!!!!!!!!!!
|
12
ch2 2021-12-04 20:06:38 +08:00
第二种可读性更好
|
13
bwangel 2021-12-04 20:29:58 +08:00
第二种啊,第一种条件多了,容易写成箭头型代码。
五六层缩进,不好看 |
14
cpstar 2021-12-04 20:32:46 +08:00
def rtn = true;
if rtn=... else if rtn=... else if rtn=... else rtn=... return rtn 哈哈 |
15
Innovatino 2021-12-04 20:44:24 +08:00 via iPhone
我觉得第二种更好。
但是我觉得把需求写在方法上面,把注释写在条件上面是更好的实践。 |
16
kaiki 2021-12-04 22:33:47 +08:00
我经常 return (xxx) ? true : false;
想着反正以后不会再去维护这块了 |
17
newtype0092 2021-12-04 22:53:48 +08:00
@noe132 这种为形式而形式了吧,本来一个条件就可以中断了,没必要把所有条件都算完。
非要追求这样的格式的话也应该分别包到闭包里。 |
18
newtype0092 2021-12-04 22:57:07 +08:00
第二种是合理的,条件多的时候按类型分开,可以确定 return 的提前 return 出去,这样后面条件越来越简单越来越清晰。
第一种一个条件连一大串,看得眼睛花了都。 if body 要加大括号 要加大括号 要加大括号 |
21
WilliamYang 2021-12-05 01:53:18 +08:00
可以看下《代码整洁之道》
|
22
binux 2021-12-05 02:02:56 +08:00 via Android
return item.approvalStatus==
STATUS.OK && !item.isEffective && ! moment(orderTime).isBetween(item.startTime, item.endTime) |
23
hm20062006ok 2021-12-05 09:34:17 +08:00 via iPhone
写两个叹号是啥意思?
|
24
chairuosen 2021-12-05 11:54:41 +08:00
写代码给人看是第一要素,不建议 10 楼写法
|
25
rosu 2021-12-05 11:59:55 +08:00 1
|
26
noparking188 2021-12-05 12:13:26 +08:00
|
27
rosu 2021-12-05 12:22:11 +08:00 via iPhone
@noparking188 理论上都可以收拢到 item 对象里的,约束和复用程度更好~
|
28
huijiewei 2021-12-05 12:57:15 +08:00
一句话
尽早返回 |
29
munan56 2021-12-05 13:40:57 +08:00
第二种啊
|