Re: [討論] 寫三元判斷式code review被打槍

軟工

1180

這讓我想到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都認為很易懂時為何不行?

: 小弟寫java的
: 以前常常寫三元判斷式
: 就比如說
: String a;
: if(con) {
: a= "aaa";
: } else {
: a="bbb";
: }
: 這樣就要佔掉六行
: 所以我通常都是寫
: String a= con ? "aaa" : "bbb";
: 從五行變成一行
: 在我看來簡潔又方便
: 但最近給一個資深前輩code review的時候
: 他說不要用三元判斷式
: 因為不好閱讀
: 他工作那麼久也從來不用三元判斷式的
: 而且java有很多套件都可以用來取代三元判斷式
: 所以用三元判斷式真的不好嗎?
----
Sent from
BePTT
on my iPhone 14 Pro Max

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.74.31.36 (新加坡) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1672335608.A.9B2.html
wulouise1樓我比較喜歡dummy prehead, indirect比較不直覺 12/30 02:11
sharek2樓如果你指的是team member 隨時都處在第二種coding style 12/30 06:45
sharek3樓下coding 當然ok, 但我想多數人的現實還是都在第一種 12/30 06:45
jack02044樓這是底層function不是商業邏輯,你會頻繁改動的那種 12/30 09:34
jack02045樓如果場景的確需要壓出這些資源,那就是用2,像nasa 12/30 09:35
s06yji36樓如果第二種效能明顯較好我會選二。兩個都不難讀 12/30 09:47
leolarrel7樓linus 是我偶像.但我知道他已經不是大多數人的偶像了.. 12/30 09:58
fr758樓Linus在的團隊第二種難的寫法也都算簡單 但一般人也進不去 12/30 10:54
fr759樓 12/30 10:54
ohmylove34710樓好讀好維護的本質是為未來改動做準備,底層不會被改 12/30 11:29
ohmylove34711樓到的東西當然效能優先 12/30 11:29
Merkle12樓好不好讀是看你team member的程度 12/30 16:15
kurtsgm13樓第一種比較好讀 第二種稍微要看仔細一點點 但如果兩種都 12/30 17:31
kurtsgm14樓看懂,我覺得第二種倒是比較符合一般人類現實中的做法 12/30 17:32
kurtsgm15樓兩種要選的話我會選第二種 XDD 純粹只是syntax稍微要細看 12/30 17:34
kurtsgm16樓但邏輯上更直覺 12/30 17:34
kurtsgm17樓(只是那pointer的naming....indirect好像有點不太具體) 12/30 17:35
bmiss18樓第二種過一段時間再回來看,應該會覺得當時很厲害 12/31 19:40
TWkobe556619樓效能這種事情很難說啦,如果是做產品未來重構時易懂很 01/07 09:32
TWkobe556620樓重要。做專案就隨便啦,驗收付錢了事。呵 01/07 09:32