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

楼主: w180112 ([NOOB]我超RETARD我超废 )   2022-12-30 01:40:05
这让我想到Linus本人在TED上举的linked list例子
以下借用Jserv老师的文章内容
(https://hackmd.io/@sysprog/c-linked-list)
1. Non elegant linked list remove
https://i.imgur.com/frZ4cmO.jpg
2. Elegant version
https://i.imgur.com/JzMxI0D.jpg
第一种好读第二种更简洁效能更好
但到底哪一种比较好呢?
回到主题 code review 的其中一个原则是要好读易懂
但如果当某种进阶写法已经是team members都认为很易懂时为何不行?
※ 引述《a88241050》之铭言
: 小弟写java的
: 以前常常写三元判断式
: 就比如说
: String a;
: if(con) {
: a= "aaa";
: } else {
: a="bbb";
: }
: 这样就要占掉六行
: 所以我通常都是写
: String a= con ? "aaa" : "bbb";
: 从五行变成一行
: 在我看来简洁又方便
: 但最近给一个资深前辈code review的时候
: 他说不要用三元判断式
: 因为不好阅读
: 他工作那么久也从来不用三元判断式的
: 而且java有很多套件都可以用来取代三元判断式
: 所以用三元判断式真的不好吗?
作者: wulouise (在线上!=在电脑前)   2022-12-30 02:11:00
我比较喜欢dummy prehead, indirect比较不直觉
作者: sharek (...)   2022-12-30 06:45:00
如果你指的是team member 随时都处在第二种coding style下coding 当然ok, 但我想多数人的现实还是都在第一种
作者: jack0204 (Jarbar王朝)   2022-12-30 09:34:00
这是底层function不是商业逻辑,你会频繁改动的那种如果场景的确需要压出这些资源,那就是用2,像nasa
作者: s06yji3 (阿南)   2022-12-30 09:47:00
如果第二种效能明显较好我会选二。两个都不难读
作者: leolarrel (真.粽子无双)   2022-12-30 09:58:00
linus 是我偶像.但我知道他已经不是大多数人的偶像了..
作者: fr75 (阿巴 )   2022-12-30 10:54:00
Linus在的团队第二种难的写法也都算简单 但一般人也进不去啊
作者: ohmylove347 (米特巴爾)   2022-12-30 11:29:00
好读好维护的本质是为未来改动做准备,底层不会被改到的东西当然效能优先
作者: Merkle (你在想奇怪的东西齁)   2022-12-30 16:15:00
好不好读是看你team member的程度
作者: kurtsgm   2022-12-30 17:31:00
第一种比较好读 第二种稍微要看仔细一点点 但如果两种都看懂,我觉得第二种倒是比较符合一般人类现实中的做法两种要选的话我会选第二种 XDD 纯粹只是syntax稍微要细看但逻辑上更直觉(只是那pointer的naming....indirect好像有点不太具体)
作者: bmiss (花草七下)   2022-12-31 19:40:00
第二种过一段时间再回来看,应该会觉得当时很厉害
作者: TWkobe5566 (台湾雕民)   2021-01-07 09:32:00
效能这种事情很难说啦,如果是做产品未来重构时易懂很重要。做专案就随便啦,验收付钱了事。呵

Links booklink

Contact Us: admin [ a t ] ucptt.com