87
回答
公司代码审查竟然提这种要求
【腾讯云】学生服务器套餐10元/月 >>>   

语言:Java

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

<无标签>
举报
战天诛
发帖于4个月前 87回/9K+阅
共有87个评论 最后回答: 3个月前

能用switch就别用if

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

相当合理~

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

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

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

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

 

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

公司里写代码是要结合业务需求来写的,不是只关注代码,业务需要什么就写什么,逐步优化,版本迭代呗!

顶部