公司代码审查竟然提这种要求

战天诛 发布于 2018/01/18 15:07
阅读 9K+
收藏 0

语言:Java

要求:方法内分支不能超过十个,例如if(){}else{}这算是两个分支,a?b:c这算是两个分支,如果超过10个,代码审查就不通过,必须重写

加载中
2
_loop
_loop

我赞成这种审查。if太多,说明你的设计很烂。

1
xwtdroid
xwtdroid

能用switch就别用if

丛林迷雾
丛林迷雾
别闹骚年
iyangyuan
iyangyuan
没道理
JavaJason
JavaJason
回复 @阳光暖暖 : 恩,我明白的。@PengTdy这位同学在钻牛角尖。我只是用问号来提示他一下。
阳光暖暖
阳光暖暖
回复 @JavaJason : jdk7 switch是支持string的
JavaJason
JavaJason
回复 @PengTdy : 然后呢?我写String的时候编译器能通过么?效果是你想要的么?是的话。不就认为可以支持了吗?
下一页
0
0小橙子0
0小橙子0

相当合理~

我公司代码,最多4个if嵌套。。超过,审查不通过。。

丛林迷雾
丛林迷雾
回复 @junezh : 就算参数校验都可以避免if,推荐使用断言工具类,或者自己写断言,何况其他的呢
霖vv
霖vv
回复 @junezh : 可以拆成多个接口啊
maradona
maradona
回复 @Java小詹 : 这个时候就需要重构,根据业务场景采用合适的模式
0小橙子0
0小橙子0
回复 @Java小詹 : 哈哈,对头~如果if太多,说明函数封装太差。。你需要把if逻辑优化成多个子函数
j
junezh
如果是写APP对接的接口时,有很多条件限制,每个条件限制需要返回给安卓显示,那样不得有好多个if了,同一接口不用类型走不同的方法那怎么办,凡是跟钱有关系的没那么多判断回去,怎么能行,用户体验度呢
0
光脚满地跑
光脚满地跑

似乎10个逻辑分支也不少了

可以通过面向对象和多态来重构解决此类问题

0
滔哥
滔哥

10个很多啦.

0
codinggg
codinggg

合理,应该考虑使用设计模式。具体可以看阿里java开发规范。

0
Albert_1001011101011
Albert_1001011101011

不会java不知道有没有类似的语法,我在写js相关的判断时,大量都是用的这种方式

var a = {
    frist : '1111',
    second : '2222',
    third : '3333'
};
var which = 'second';
console.log(a[which]);

 

丛林迷雾
丛林迷雾
回复 @PengTdy : 你只看到了单纯的Map与if,没有看到map怎么用,建议仔细研究一下面向对象特性、设计模式
S
SB是我
python娃表示这么写没毛病
Albert_1001011101011
Albert_1001011101011
回复 @CoCo丶Hu : 大师点评得是
Albert_1001011101011
Albert_1001011101011
回复 @蓝水晶飞机 : 对,尤其是在做不确定的条件时
Albert_1001011101011
Albert_1001011101011
回复 @PengTdy : 见仁见智吧,if的代码量会大几倍,当然你也可以用函数来实现
下一页
0
Tuesday
Tuesday

就是让你写代码, 分块写.. 别if瞎用. 

0
苦苦奋斗的渣渣

还好吧  我也感觉要是写很多if挺蠢的  首先代码就不好看

返回顶部
顶部