if(true)是个什么习惯?

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

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

// 关闭某个接口

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

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

13394 次点击
所在节点    程序员
88 条回复
gigantic222
2017-08-11 09:03:44 +08:00
不加逻辑不舒服斯基
ericls
2017-08-11 09:03:48 +08:00
以前需要判断 现在不需要了
blankme
2017-08-11 09:05:22 +08:00
注释都告诉你了。。。
Rice
2017-08-11 09:05:31 +08:00
多半是懒得删除 if 语句结构
veelog
2017-08-11 09:06:34 +08:00
我喜欢用 do{}while(0)
facetest
2017-08-11 09:06:43 +08:00
软删除
littleylv
2017-08-11 09:07:20 +08:00
不是懒。是为了防止以后又要改回去
syncher
2017-08-11 09:09:45 +08:00
难道是被产品逼的?
play78
2017-08-11 09:11:15 +08:00
业务写多了, 你如果看到这种代码,也见惯不怪了。

boolean flag = check(model); //检查模型部分参数及功能合法性

flag = true; //由于 XXX 需求修改

if(flag == true){
//do something
}else{
//do other
}
congeec
2017-08-11 09:15:15 +08:00
我也喜欢这样,不过吃过不少亏
记得旁边加个注释,// FIXME
DrJoseph
2017-08-11 09:16:18 +08:00
这叫防御性开发,防止需求的多次更改
littleylv
2017-08-11 09:16:43 +08:00
@play78 #8
你这样改问题很大。。。。。。不应该继续执行 check 方法了。

boolean flag = true; //check(model); //检查模型部分参数及功能合法性 // 20170811 由于 XXX 需求修改

我一般会这样改。保持原来的代码在,但注释掉,不要再执行。你懂的万一需求脑抽又要改回去,不能删掉 check 的代码
LeoNG
2017-08-11 09:21:05 +08:00
好像在哪见过,/t/375091
ThatIsFine
2017-08-11 09:21:09 +08:00
开关要么是配置,要么常量. 直接这么写也就 DEBUG 的时候.发版的时候还有这种就不太专业.
Mutoo
2017-08-11 09:25:47 +08:00
我喜欢用注释

//* this block is for test
console.log('this line would be output');
//*/

不用的时候删除掉第一个 /

/*
console.log('this line would not');
//*/

另外还有两个代码块切换的用法

//*
console.log('run this');
/*/
console.log('or this');
//*/
SourceMan
2017-08-11 09:27:36 +08:00
防御性开发,他是一个老司机,你要跟他学习
miniwade514
2017-08-11 09:29:39 +08:00
很早以前看过的一篇文章
http://www.bitnative.com/2012/10/22/kill-the-zombies-in-your-code/
一直记得他的核心观点:不用就删,别不舍得
“说不准哪天会用到”的东西,十有八九是再也用不到了,或者很久很久才会用到。而这些注释代码对于后续开发是一种干扰,尤其是交给其他人时。
真要保留 A/B 两种方案时,可以尝试分别封装到模块或者函数里,代码干净很多。
miniwade514
2017-08-11 09:31:42 +08:00
如果是开发过程中临时 mock,我一般会加上注释
// TODO 调试用,上线前删掉
raiz
2017-08-11 09:32:08 +08:00
调试到不用调试了。
VincentWang
2017-08-11 09:32:30 +08:00
那些说需求来回改的,你们代码不用版本控制吗? 老代码在版本里,不要的代码就删了啊...

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

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

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

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

© 2021 V2EX