推 normaler: 案例1你可以拿refactor的書給他看 09/07 00:46
前題是reviewer會唸
→ chrischen: 案例2的意思應該是怕其他人看不懂 可能有既有慣用寫法 09/07 00:52
這倒是有可能
但是如果有既有慣用寫法 我覺得應該要寫出來給人知道
而且這樣一打範圍太大了 什麼function都能用這原因被禁止掉
→ qweqweqweqwe: 不可以用formatter 不過你用了他會知道嗎 @@ 09/07 00:53
之前我有survey過
但是既有的online formatter都有小部份不能達到
而且公司很重規定+reviewer坐我旁邊
我非常討厭被飆 所以他們說不能用我就沒去用
→ tw689: 糟糕 我也不喜歡一的寫法orz 09/07 01:02
我在STACK OVERFLOW看過這個問題
有人說I perfer to call this question "holy war".
XD
但我是覺得你要講要改OK
沒看過的CODE就直接抓人來飆....我只會覺得她心胸未免也太狹窄
→ VVll: 我也喜歡在func內做檢查 不允許就return 或者 continue 09/07 01:13
(握)
→ xpop777: 我喜歡自由發揮xD,加油,總會找到適合的位置 09/07 01:14
謝謝!!
→ bndan: 我還以為1的寫法會轉成switch耶 = =a (也許個人偏好?) 09/07 01:16
對啊~已經變成個人偏好了
→ VVll: switch 只能針對明確的result做判斷 case 09/07 01:24
→ VVll: switch的特點在於 善用break 09/07 01:25
是啊
例如
if(A && B)
{
}
else if(C && D)
{
}
else
{
}
就不好改成switch了
推 GoalBased: 部門經理說,他在前一個公司,也是有規定 09/07 01:40
→ GoalBased: 老闆不用遞迴,你寫了遞迴去給老闆,解釋到他懂了 09/07 01:40
→ GoalBased: 他還是會叫你改成迴圈 09/07 01:41
→ GoalBased: 至於過多層是否是你那個function 職責太多呢? 09/07 01:41
功能倒是還好
那個function不超過4層
只是為了降層才寫成那樣
推 uid88: 1. 寫成這樣大概我們組上任何人review都會不過 09/07 02:08
→ uid88: 2. 新的function確實代表了風險。但是並非絕對不能承受 09/07 02:08
→ uid88: 可以設法提出: 1)這function在各種環境下可靠的證據 09/07 02:09
→ uid88: 2)若用現有function也可以完成同樣功能,用新的好處為何 09/07 02:09
1.如果說這是LINUX推薦的寫法呢?
事實上....他們最新一版的coding style規定也叫別人用我那種寫法
2.她沒有提供現有的function給我用
只有說那樣寫不行 要改掉
例如大家都用scanf
我突然間用fscanf這樣
然後我上面回文中有提到
"但是如果有既有慣用寫法 我覺得應該要寫出來給人知道"
推 wadechen: 我只覺得這樣就要走人 也太兇...@@ 09/07 02:09
是誰兇XD?
推 braverycloud: 聽你這樣描述,我會認為在那邊只是Code產生器 XD 09/07 02:13
以前我也有想過這個問題
但我聽說外國也會有code reviewer和coding style
所以後來我也被說服了Orz
→ cha122977: 1.的寫法是guard condition? 是的話這樣寫應該ok 09/07 02:28
是的
※ 編輯: workworkwork (111.252.76.35), 09/07/2014 02:30:15
→ cha122977: 看來問題出在無法溝通XD 09/07 02:31
推 newcycle: 不用formatter的理由是..? 09/07 03:04
→ andymai: reviewer 不能溝通之外也不專業!一個東西能不能用居然是 09/07 04:41
→ andymai: 看前人有沒有用過?就算自己懶得看~也該叫原PO說明使用上 09/07 04:43
→ andymai: 的優缺點~再做進一步的考量~甚至是開個內部會議啊... 09/07 04:44
→ alog: 我覺得reviewer不能溝通就算了 09/07 06:56
→ alog: 其他那些根本就是小事y 09/07 06:57
→ wens: linux kernel裡面就是遇到錯可以直接return就直接return 09/07 09:29
→ wens: 需要收屍的時候就會有goto跳到最後面反向收垃圾 09/07 09:29
→ wens: 會這樣寫有個原因, 就是每行80字元的限制 09/07 09:30
→ jtorngl: 我習慣寫 if ("ABC".equals(str)) { 也曾被嫌棄過 09/07 09:39
→ jtorngl: 說為什麼不寫成 if (str.equals("ABC)) { .... 09/07 09:40
→ jtorngl: 另外常常要做null checking覺得很麻煩,不知是否有好方式 09/07 09:43
推 hegemon: 如果你是用java的話..用StringUtils.equals... 09/07 10:02
→ hegemon: 你就跟他們說這是Apache認證過的 09/07 10:03
推 ticks: wes:與其說是80字元的限制,不如說是用這些規定來防巢狀 09/07 10:04
→ ticks: if-else。另一個相關的規定就是tab width=8 09/07 10:04
推 GX90160SS: 1.的寫法不錯啊,我避免if太多層也是這樣用的 09/07 11:09
→ cha122977: linux的寫法也和driver特性有關 初始化失敗要反向處理 09/07 12:13
推 atst2: 1.你改寫的方式,可能會有潛在的問題. 09/07 12:57
→ atst2: 主要是你的程式不只是單純的guard condition,每個codition 09/07 12:58
→ atst2: 間還有"do something". 09/07 12:58
→ atst2: 不注意的話, 有可能增加leak的機會 09/07 12:59
推 typepeter: 這樣算是有作code review喔? 這樣人人都是code viewer 09/07 12:59
→ typepeter: 基本上這公司的制度和人員素質都不怎樣吧... 09/07 13:00
→ atst2: 從這點來看,我不認為你的reviewer在1.的情形不對,也可能單 09/07 13:00
→ atst2: 純是關注點不同,你比較注重減少層次,他可能比較重視單一 09/07 13:01
→ atst2: entry/exit的問題. 09/07 13:01
推 leicheong: 我倒是寧願指定一款code formatter, checkin前要跑一下 09/07 13:41
→ leicheong: 把時間花在formatting上真是沒效率的事. 09/07 13:42
→ ACMANIAC: 1 哪有什麼問題,這間公司... 塊陶阿 09/07 14:12
→ bndan: = = 其實你的例子一樣能轉.有沒有價值而已... 09/07 14:29
→ bndan: switch(true)case A&&B,!(A&&B)&&C&&D,!(A&&B)&&!(C&&D) 09/07 14:32
推 GX90160SS: 樓上那寫法有夠醜 09/07 21:22
推 rave308: int qq = true ? 1 : 2 09/07 22:34
推 readonly: 你覺得他說的真的沒 100% 可取性? 09/07 22:53
推 ku399999: 例一明顯是原po寫法比較好吧 可讀性較高 將來維護也不 09/08 02:39
→ ku399999: 會繼續在裡面增加判斷式 leak請用auto pointer 09/08 02:41
推 alan3100: 不能用formatter掃有啥意義? 有車不開應要用走的 09/08 22:52
推 mmchen: trigger超好用的耶,公司沒人熟jquery嗎… 09/09 14:10
→ b6byc: 很怕遇到reviewer , 以為自己是神. 09/09 15:20
→ andymai: 也不是每個reviewer都這樣啊~能不能溝通並盡量站在客觀的 09/10 01:38
→ andymai: 角度去討論才是重點... 09/10 01:38
→ honochung: 想問trigger不好嗎@@?我用了超多耶 09/12 00:22
推 ottokang: 幹麻不用Formatter.... 09/12 14:03