if(true)是个什么习惯?

2017-08-11 09:02:29 +08:00
 retanoj

经常在代码里看到这种用法

// 关闭某个接口

if(true) { return APIResultVo.error(xxxx); }

这个 if( true ) 是什么编程习惯?有什么说法么?

13407 次点击
所在节点    程序员
88 条回复
Perry
2017-08-11 09:35:37 +08:00
好奇怎么通过 code review 的 还什么防御性开发 牛逼
Monad
2017-08-11 09:39:04 +08:00
@littleylv #12 然而发现 Check 是个有副作用的函数 卒
nicevar
2017-08-11 09:44:34 +08:00
@VincentWang 版本控制如果改动多的话时间一长几十个版本去找浪费时间,而且代码逻辑复杂的情况下更麻烦,上面说的,写 fixme+注释比较妥当
hiboshi
2017-08-11 09:46:06 +08:00
我们也经常这样 ,有时候需要 临时关闭 某个功能,我的经验是 老代码写成这样 往往都是有原因的。
shard
2017-08-11 09:49:58 +08:00
骗编译器?
比如
```
if(true) return xxx;
// other codes
...
```
Lucups
2017-08-11 09:50:41 +08:00
@VincentWang +1

很多新手都有这个问题,代码舍不得删,各种大段注释。我说从版本库里找回来不就行了,他们说太麻烦。。。
其实就是懒。

话说,那么多注释的代码看着不累么。。。
stephen9357
2017-08-11 10:13:34 +08:00
@littleylv 这样做是过不了代码覆盖率检查的。
fan123199
2017-08-11 10:29:18 +08:00
如果不加 if,return 下面如果有代码,有些 ide 会报错
bk201
2017-08-11 10:40:01 +08:00
代码少还好,多了看得是比较烦人的。
loveCoding
2017-08-11 10:43:30 +08:00
防御性开发最多做个为空判断 ,其他代码都删掉吧 ,基本上用不到.
ma125125t
2017-08-11 10:45:29 +08:00
上面说 code review、版本控制的,纯粹是你们的需求改的不够多罢了。
当然,我承认这样写不好。
jason2017
2017-08-11 10:50:04 +08:00
还什么防御性开发,代码不规范就是不规范,懒就是懒。
所谓的为了防止需求变动,你就那 2 行代码改起来都觉得费事吗?
而且对于经常变动的业务,也不应该写这种硬编码的代码,更应该考虑把相关逻辑转移到配置文件或者数据库中,这才是"防御性开发"。
mcfog
2017-08-11 10:50:39 +08:00
@miniwade514 为什么要立这样的 flag ……

if (ENV_IS_NOT_PRODUCTION) {
//do sth. dirty
}
am241
2017-08-11 10:53:24 +08:00
@Mutoo 碰巧我也是…
pynix
2017-08-11 10:55:24 +08:00
当注释用吧,,,
esmdxx1
2017-08-11 11:04:13 +08:00
楼主你用你得先夺为主得偏见,首先就确定事情得结构,事实上得情况 ,复杂很多,所以原因也太多,比如,自己定义得条件编译,或者本来需要两段代码,
gdtv
2017-08-11 11:05:15 +08:00
我承认我这样写不规范,但需求更不规范,如果需求能保证始终如一后续不改变,我保证能写出规范的代码。
flowci
2017-08-11 11:15:00 +08:00
不要滥用概念,,,,防御性编程是一种编程习惯,是指预见在什么地方可能会出现问题,然后创建一个环境来测试错误,当预见的问题出现的时候通知你,并执行一个你指定的损害控制动作,如停止程序执行,将用户重指向到一个备份的服务器,或者开启一个你可以用来诊断问题的调试信息。。。。
dorentus
2017-08-11 11:17:47 +08:00
@fan123199 不过即使加了,比较新的编译器也还是会报错或者警告……
iyaozhen
2017-08-11 11:20:29 +08:00
说实话没有见到过这样的代码,写过的、review 过的代码也有十几万行了。这样些是会被直接打回的

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

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

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

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

© 2021 V2EX