Re: [讨论] 写三元判断式code review被打枪

楼主: lovdkkkk (dk)   2022-12-27 01:42:03
最近公司读书会在看 Martin Fowler 的 Refactoring,
大概第九或第十章他有用到三元
sample code 大概是这样
const price = summer()? summerPrice() : commonPrice();
然后我们有看这串文章讨论了一下
讨论的结果是,我们觉得三元比较适合用在 "单纯,且明确是非 A 即 B 的情况"
ex const desc = score > 60? "及格" : "不及格"
而像上面 summer 的情况则比较不适合,
因为一年有四季,需求调整改著改著就变巢状了,
除非公司有明确的规范及 review 作业流程
而为了避免各种认知差异衍生的麻烦,直接禁用也是合理的
以上,刚好最近也有讨论到
※ 引述《a88241050 (再回头已是百残身)》之铭言:
: 小弟写java的
: 以前常常写三元判断式
: 就比如说
: String a;
: if(con) {
: a= "aaa";
: } else {
: a="bbb";
: }
: 这样就要占掉六行
: 所以我通常都是写
: String a= con ? "aaa" : "bbb";
: 从五行变成一行
: 在我看来简洁又方便
: 但最近给一个资深前辈code review的时候
: 他说不要用三元判断式
: 因为不好阅读
: 他工作那么久也从来不用三元判断式的
: 而且java有很多套件都可以用来取代三元判断式
: 所以用三元判断式真的不好吗?
作者: jason222333 (发呆)   2022-12-27 06:20:00
这是最恰当的用法
作者: Jichang (C.C.Lemon)   2022-12-27 06:47:00
那个就是bool 你举switch 的case 造你这说法 if 也要禁用
作者: wulouise (在线上!=在电脑前)   2022-12-27 11:40:00
不懂你说的guard是什么意思,Early return另一个名称不就是guard clause?把n个early return变一个?没有profile就做最佳化等于是浪费机会成本..
作者: viper9709 (阿达)   2022-12-27 16:47:00
推明确非A即B的情况+1
作者: justben (BEN)   2022-12-27 18:38:00
不懂这有啥好吵 规定特殊写法一率注解就好了啊要秀可以 麻烦注解 done
作者: ohmylove347 (米特巴爾)   2022-12-28 09:23:00
楼上不是,你会说的没啥好吵的,是因为只要有一套“统一做法”那就不会有争议,但现在的问题是如果要有一套统一做法,那是哪一套?统一做法能解决大家都知道,有争议的是该用哪个做法来统一

Links booklink

Contact Us: admin [ a t ] ucptt.com