Web 项目越来越多的 if else 这正常吗?

2015-09-17 15:37:49 +08:00
 blackboom

思维是被固化了?
感觉到非常多的 if 结构语句
有时候会纠结用 try 还是 if else ?

4821 次点击
所在节点    Java
24 条回复
moe3000
2015-09-17 15:46:40 +08:00
我基本会有很多 if return, else 较少
话说 try 是要怎么用?为什么会和 if else 纠结?
lichao
2015-09-17 15:52:04 +08:00
if 多不多,得看具体业务场景
try 做异常捕获,跟 if else 这个完全不需要纠结吧
cyberdak
2015-09-17 15:52:56 +08:00
try 是捕抓异常的。。

楼楼大概是要问 if else 和 switch
FFLY
2015-09-17 15:55:10 +08:00
try 是做异常捕获处理的,纠结什么呢?
zjq426
2015-09-17 15:55:33 +08:00
得看 if 多在哪了,如果是比较值的可以用 switch 啊,
如果是一组逻辑判断也可以实现类似 python 里的 any all 之类的判断。或者优化一下表达式什么的。
其实做好代码的封装和模块化处理应该也不太会出现很多的 if 。
如果是 copy & paste 的代码那出现很多 if 是必然的了。。。
xfspace
2015-09-17 15:55:35 +08:00
switch 来得快, else if 读起来缩进难受
pelloz
2015-09-17 16:09:11 +08:00
常用的判断封装好,把类似业务的条件判断抽离出来一起处理,这样看起来逻辑比较清晰,该需求也容易应对了
honam
2015-09-17 18:58:13 +08:00
try 和 if else 有关系? LZ 怎么做的
aisk
2015-09-17 19:02:51 +08:00
说明面向对象建模没有做好,写出来的代码都是过程式的。
sorra
2015-09-17 19:46:24 +08:00
异常控制流多的走 try 不是不可以, 1 楼的 if return 也可以。清晰就好,看效果。
另外安利一篇 http://segmentfault.com/a/1190000000664023
blackboom
2015-09-17 20:20:26 +08:00
@moe3000 @lichao @cyberdak @FFLY ...例如判断非法 URL (/?p=xxx )之类,纠结用 if 还是 try ,纠结那个更合适当前场景,更加简洁迅速(这可能是病)。
@pelloz @aisk 判断最多的是在 controller 中,框架使用的是 jfinal
例如某个 Controller 需要判断非法 URL ,需要判断当前登录用户 ID ,同时也要满足未登录用户需求,这样下来整个个代码看起来满目全非。
类似这种大量的判断无从下手的感觉。

另外求推荐比较精细的项目
aisk
2015-09-17 20:42:12 +08:00
@blackboom 就是 jfinal 帮你做了基本的面向对象建模,之后的你没有再考虑继续抽象,而是在此之上写很多 if else while return 的语句。这种项目挺常见的,关键就是要做合理的抽象。
moe3000
2015-09-17 20:49:38 +08:00
@blackboom 记得 jfinal 有 interceptor ,用这个拦截非法 url 啊
akagi
2015-09-17 20:54:29 +08:00
再次建议表驱动……
BB9z
2015-09-17 22:45:46 +08:00
把 model 变重一些,多建一些可读性更好的 getter 。
phithon
2015-09-17 23:26:57 +08:00
其实楼主的意思是, web 里太多错误判断用 if else 来完成了,是不是要改成异常处理
其实我的意见是,没必要。
else 能少就少, if 的话该有的就得有,不满足条件的直接 return 不用 else ,然后把通用的一些功能一封装就好了,不嫌多的。谨慎是好事。
blackboom
2015-09-18 00:20:13 +08:00
@moe3000
@phithon
谢谢两位,改为 if return 代码清爽太多了,简洁迅速。喜欢!
blackboom
2015-09-18 00:23:23 +08:00
@akagi 感谢,又发现新大陆了
zonghua
2015-09-18 00:30:54 +08:00
设计模式,设计模式。
whimsySun
2015-09-18 00:34:07 +08:00
我都看纠结了。。。

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

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

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

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

© 2021 V2EX