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