[討論] 因為空格~我離開了一間公司

作者: workworkwork (workworkwork)   2014-09-07 00:40:04
這是我"前"公司的經驗了
一開始以為公司內有嚴格的coding style規定是件好事
我也贊成公司要有一致的coding style
(像我以前看過apache的C code
全部CODE都像同一人寫出來的一樣)
而公司內也會有人code review你的部份
一切聽起來都很完美
一開始聽到有規定coding style和code reviewer也很開心
但因這一切都因為公司裡有一個奇怪的規定而毀了
"code不可以用code formatter去掃"
我承認自己寫程式常會漏勾
所以寫完會花很多心力在檢查有沒有BUG 是否會被攻擊 資安問題等等....
但在這間公司發現一個很奇怪的事情
"有資安漏洞的CODE大家會很有耐心的教 空格沒空好會被罵的狗頭淋頭"
搞到最後一段程式寫完我只知道檢查空格....
最後的最後我決定離職的原因是出在reviewer
和reviewer的code觀念差太多 跟本無法共事
例如:
1.
有時為了避免太多層出現===>
if(a)
{
//do a things
if(b)
{
//do b things
if(c)
{
//do c things
}
}
}
會改成====>
if(!a)
{
return ;
}
//do a things
if(!b)
{
return ;
}
//do b things
if(!c)
{
return ;
}
//do c things
但因為這寫法code reviewer沒看過
她直接在辨公室裡開飆
2.
reviewer說出了我聽說最莫名奇妙的一句話
"這function以前沒人用過 所以你不能用這function"
(jquery的trigger)
不是因為效能 不是因為安全問題 而是因為公司前人沒用過....
我第一次遇到會規定coding style的公司
一開始以為是檢到寶
後來沒想到工作沒滿試用期就離職了....
作者: normaler (㊣天才㊣)   2014-09-07 00:46:00
案例1你可以拿refactor的書給他看
作者: chrischen (一個人的長假)   2014-09-07 00:52:00
案例2的意思應該是怕其他人看不懂 可能有既有慣用寫法
作者: qweqweqweqwe (4qwe)   2014-09-07 00:53:00
不可以用formatter 不過你用了他會知道嗎 @@
作者: tw689 (台灣689)   2014-09-07 01:02:00
糟糕 我也不喜歡一的寫法orz
作者: VVll (李奧納多皮卡丘)   2014-09-07 01:13:00
我也喜歡在func內做檢查 不允許就return 或者 continue
作者: xpop777 (Archie)   2014-09-07 01:14:00
我喜歡自由發揮xD,加油,總會找到適合的位置
作者: bndan (seed)   2014-09-07 01:16:00
我還以為1的寫法會轉成switch耶 = =a (也許個人偏好?)
作者: VVll (李奧納多皮卡丘)   2014-09-07 01:24:00
switch 只能針對明確的result做判斷 caseswitch的特點在於 善用break
作者: GoalBased (Artificail Intelligence)   2014-09-07 01:40:00
部門經理說,他在前一個公司,也是有規定老闆不用遞迴,你寫了遞迴去給老闆,解釋到他懂了他還是會叫你改成迴圈至於過多層是否是你那個function 職責太多呢?
作者: uid88 (uid88)   2014-09-07 02:08:00
1. 寫成這樣大概我們組上任何人review都會不過2. 新的function確實代表了風險。但是並非絕對不能承受可以設法提出: 1)這function在各種環境下可靠的證據2)若用現有function也可以完成同樣功能,用新的好處為何
作者: wadechen (忙)   2014-09-07 02:09:00
我只覺得這樣就要走人 也太兇...@@
作者: braverycloud (嵐)   2014-09-07 02:13:00
聽你這樣描述,我會認為在那邊只是Code產生器 XD
作者: cha122977 (CHA)   2014-09-07 02:28:00
1.的寫法是guard condition? 是的話這樣寫應該ok看來問題出在無法溝通XD
作者: newcycle (running in circles)   2014-09-07 03:04:00
不用formatter的理由是..?
作者: andymai (人生只有一次)   2014-09-07 04:41:00
reviewer 不能溝通之外也不專業!一個東西能不能用居然是看前人有沒有用過?就算自己懶得看~也該叫原PO說明使用上的優缺點~再做進一步的考量~甚至是開個內部會議啊...
作者: alog (A肉哥)   2014-09-07 06:56:00
我覺得reviewer不能溝通就算了其他那些根本就是小事y
作者: wens (文思)   2014-09-07 09:29:00
linux kernel裡面就是遇到錯可以直接return就直接return需要收屍的時候就會有goto跳到最後面反向收垃圾會這樣寫有個原因, 就是每行80字元的限制
作者: jtorngl (Pedrosa go!)   2014-09-07 09:39:00
我習慣寫 if ("ABC".equals(str)) { 也曾被嫌棄過說為什麼不寫成 if (str.equals("ABC)) { ....另外常常要做null checking覺得很麻煩,不知是否有好方式
作者: hegemon (hegemon)   2014-09-07 10:02:00
如果你是用java的話..用StringUtils.equals...你就跟他們說這是Apache認證過的
作者: ticks (ticks)   2014-09-07 10:04:00
wes:與其說是80字元的限制,不如說是用這些規定來防巢狀if-else。另一個相關的規定就是tab width=8
作者: GX90160SS   2014-09-07 11:09:00
1.的寫法不錯啊,我避免if太多層也是這樣用的
作者: cha122977 (CHA)   2014-09-07 12:13:00
linux的寫法也和driver特性有關 初始化失敗要反向處理
作者: atst2 (atst2)   2014-09-07 12:57:00
1.你改寫的方式,可能會有潛在的問題.主要是你的程式不只是單純的guard condition,每個codition間還有"do something".不注意的話, 有可能增加leak的機會
作者: typepeter (∵Peter∴笑點)   2014-09-07 12:59:00
這樣算是有作code review喔? 這樣人人都是code viewer基本上這公司的制度和人員素質都不怎樣吧...
作者: atst2 (atst2)   2014-09-07 13:00:00
從這點來看,我不認為你的reviewer在1.的情形不對,也可能單純是關注點不同,你比較注重減少層次,他可能比較重視單一entry/exit的問題.
作者: leicheong (睡魔)   2014-09-07 13:41:00
我倒是寧願指定一款code formatter, checkin前要跑一下把時間花在formatting上真是沒效率的事.
作者: ACMANIAC (請肥宅救救肥宅)   2014-09-07 14:12:00
1 哪有什麼問題,這間公司... 塊陶阿
作者: bndan (seed)   2014-09-07 14:29:00
= = 其實你的例子一樣能轉.有沒有價值而已...switch(true)case A&&B,!(A&&B)&&C&&D,!(A&&B)&&!(C&&D)
作者: GX90160SS   2014-09-07 21:22:00
樓上那寫法有夠醜
作者: rave308 (Ray)   2014-09-07 22:34:00
int qq = true ? 1 : 2
作者: readonly (唯讀)   2014-09-07 22:53:00
你覺得他說的真的沒 100% 可取性?
作者: ku399999   2014-09-08 02:39:00
例一明顯是原po寫法比較好吧 可讀性較高 將來維護也不會繼續在裡面增加判斷式 leak請用auto pointer
作者: alan3100 (BOSS)   2014-09-08 22:52:00
不能用formatter掃有啥意義? 有車不開應要用走的
作者: mmchen (艾斯雪雷凱特拉斯)   2014-09-09 14:10:00
trigger超好用的耶,公司沒人熟jquery嗎…
作者: b6byc (oopp)   2014-09-09 15:20:00
很怕遇到reviewer , 以為自己是神.
作者: andymai (人生只有一次)   2014-09-10 01:38:00
也不是每個reviewer都這樣啊~能不能溝通並盡量站在客觀的角度去討論才是重點...
作者: honochung (http://lol.moa.tw)   2014-09-12 00:22:00
想問trigger不好嗎@@?我用了超多耶
作者: ottokang (貓貓的大玩偶)   2014-09-12 14:03:00
幹麻不用Formatter....

Links booklink

Contact Us: admin [ a t ] ucptt.com