作者:
brucetu (sec)
2022-12-14 13:54:02三元不能用 算還好了
我還遇過
a=1;
...
...
if (xxx) a=2;
不能這樣寫 請改成
if (xxx) { //還可以戰一下這個{要不要去下一行
a=2;
}
以免有人沒看到那個一行if後面有assign value
這種事情就是看話語權啦
每個人看code習慣不同
作者:
NCUking (中大王)
2022-12-14 14:10:00什麼話語權 這是團隊規範該做的好嗎
作者:
LFimi 2022-12-14 14:28:00這只是coding style根本沒統一而已吧
原來不只我討厭第一種寫法if(xxx)a=2;b=3;如果是if(xxx) return、break就算了 上面這種更糟
第一種在幹嘛....為啥不直接宣告在if上面要離那麼遠
我們這邊只要有if就強制加大誇號就算是空body也一樣
有{}還是比較好啦 雖然現在CODE只有一行 未來要加
如過以google java style來講大夸號是必加不能省
其他行程式也比較不會出錯 沒{}的寫法真的就裝逼~剛學程式時也喜歡那些寫短的code 好像越短越強
第一種寫法除非你以後絕對不會改到 不然維護上很常出錯
但工作久了反而覺得可讀性高的程式重要多了之前寫個迴圈 同事還叫我把所有邏輯寫在迴圈裡 說這
我也討厭if(xxx) a=2;這種一行式的 就難看
作者:
baobomb (baobomb)
2022-12-14 14:44:00面試看到 if else不加大括號的 都直接先扣分... 整個看起來有夠醜
作者:
testPtt (測試)
2022-12-14 14:48:00一行分號我倒是不介意 只要a不出錯後面都可以無視
作者:
baobomb (baobomb)
2022-12-14 14:49:00一開始可能還好 但函式在擴展時 邏輯可能會變多 然後一旦一開始沒有大括號 後面就也不會加 最後就是 if(xxx) a;b; c;....一直加下去 可讀性極差
作者: s06yji3 (阿南) 2022-12-14 14:54:00
if-else 有無大括號影響可以很大
作者:
testPtt (測試)
2022-12-14 14:54:00其實看不爽就看ide的格式化功能幾個按鍵搞定
code就是訂定好協議 風格一致比較好看 一下{換行一下{不換行接後面 不一致就是難看而已
作者:
hegemon (hegemon)
2022-12-14 15:23:00第一個就算是Google 的coding style 都會把他處理掉好嗎?
作者:
testPtt (測試)
2022-12-14 15:27:00第一個我是遇過變數集中函式集中宣告強迫正 所以會離很遠
作者:
TSW (翹班帝國)
2022-12-14 15:31:00你可以換個環境,寫 ruby 吧Coding Style的討論我覺得很浪費時間,最近都是丟給特別有意見的成員,讓他們自己去formatter的設定檔上面編輯戰,再讓CI跑過後,Code review 就快多了。
作者:
testPtt (測試)
2022-12-14 15:53:00大家碰到這個要換行嗎? public int Goo { get; set; }
加括號是習慣吧!以後裡面加code才不會生出bug難解加一下不會花你多少時間空間,減少以後出錯debug時間
作者:
acgotaku (otaku)
2022-12-14 16:16:00第一個確實應該改。而且 styling check 就跑不過了
作者:
Hsins (翔)
2022-12-14 16:19:00寫書寫筆記為了避免排版跟篇幅問題可以那樣寫, 實際上開發會儘量避免
作者: bab7171 2022-12-14 16:31:00
笑死 這不是會寫c,就要知道的事嗎為什麼一定要用大括號
作者: k798976869 (kk) 2022-12-14 16:37:00
不爽括號不會用蟒蛇嗎
作者: somefatguy 2022-12-14 16:44:00
我都用ide把大括號設成背景色
寫一行的那種coding style應該是前端框架才有機會看到吧
作者:
Jasforwe (沒有目標不會不好)
2022-12-14 16:47:00我都看心情有時候第一種有時候第二種給你參考
作者:
choosin (秋心)
2022-12-14 17:05:00只是括號縮排講好就好 根本沒那麼重要好嗎…
作者:
peter98 (新兵)
2022-12-14 17:55:00大括號一定要加的 不管幾行 你不加括號 送review被嘴只是剛好單行不加括號是很糟糕的壞習慣
作者:
bill0205 (善良的小孩沒人愛)
2022-12-14 18:30:00討厭不換行+1 而且還不+大括號很煩人
作者:
testPtt (測試)
2022-12-14 20:37:001.a=>b+c; 2.a=>{b+c;}哪個好
作者: kokona554 (Ocelot) 2022-12-14 20:49:00
寫個括號很難嗎
作者:
gs8613789 (Shang6029)
2022-12-14 21:03:00討厭不換行
作者:
TAKADO (朕沒給的你不能搶)
2022-12-14 22:29:00第一種寫法等同於埋地雷給新人踩
作者:
peter98 (新兵)
2022-12-14 22:36:00一個55分 一個50分 不要在不及格的東西上爭論 乖乖加括號就是 不然gerrit上肯定有人送你個紅色大叉叉更正 gerrit->code review system至於左括號要刮在if()後面還是跳一行 拜託你看一下原本的repo裡面怎麼寫的 照著寫 不要標新立異(而且這是很沒創意的標新立異 沒人會appreciate你的點)
作者:
Dracarys (MayShowGunMore)
2022-12-14 22:58:00有
自己的專案寫一行沒差,多人的專案就是埋坑給別人跳而且 google code style 就跟你說要加大括號了
作者:
stero (認真 發呆)
2022-12-14 23:50:00老實說 單純你自己覺得好
作者:
chuegou (chuegou)
2022-12-14 23:50:00大括號必加
加大括號比較好 之前Apple就有個有名bug: goto fail如果有加大括號也能避免
作者:
germun (ger)
2022-12-15 00:55:00這種會被罵只能說活該 自以為很簡潔= =
作者: adsl12367 (adsl12367) 2022-12-15 01:31:00
第一種寫法團隊開發不建議這樣
記得之前一個很有名的安全性漏洞 就是沒加大括號造成的然後讓一堆公司忙著修補
Coding style 不過 正常啊現代自動檢查 你這一定被抓啊
作者:
Hsins (翔)
2022-12-15 05:54:00我喜歡大括號,但不排斥 Python:)
作者:
Csongs (西歌)
2022-12-15 08:45:00coding style 遵守很難嗎...爭這個幹嘛
作者:
timTan (用口頭禪區分年記)
2022-12-15 10:15:00很多bug 都是沒有大括號來的
作者:
baobomb (baobomb)
2022-12-15 13:14:00Kotlin那有第一種寫法.... 你說的kt寫法應該是 val a = if(true) xx else xx原po第一種是 if(true) a = xx就算是kt 比較穩妥的team 也都是寫 val a = if(true) { xx } else { xx }你不加大括號 就算是kt 裡面邏輯一旦變多 一樣是爆炸好嗎
不加大括號本來就是給單行用的,就是讓最精簡的寫法能夠更精簡,多行當然用括號,第一個寫法kt是能用的,而且也常常當三用運算子用var v = if (a) b else c不寫括號就是為了讓單行的精簡度更高,習慣了也不會影響閱讀甚至更流暢,多行不加括號已經不是設計本意了,我自己理解是只有單行可以不加
作者:
hegemon (hegemon)
2022-12-15 15:09:00連單行都會被check style 要求要加好嗎?
作者:
brucetu (sec)
2022-12-15 15:55:00因為沒有大括號引發bug應該還是寫的人的問題 自己眼殘加上測試不足不過規定一律要加以防有人犯錯我是可以認同啦
kt style有指明可以單行不括號,不知道大家在激動啥..
作者:
baobomb (baobomb)
2022-12-15 17:21:00還是要看Team size啦 如果只是10-20個人維護的中小型專案 可能自己定好style 測試嚴謹就行 但如果是幾百人維護的超大型專案 不加真的很常被後面的人越寫越醜... 畢竟你不能保證所有人都跟你一樣 看到邏輯擴展時會reformat code 加上括號抽出邏輯 等到你回頭看的時候 常常已經面目全非Kt style單行不加沒錯 但單行指的是你邏輯簡單到不行 而且確認不可能會擴展 不然基本上還是加了比較安全
作者: superpandal 2022-12-15 18:13:00
我也經常第1種寫法 第2種寫法是很浪費程式碼空間的而且也並不難懂 只是習不習慣有沒有偏見
作者: superpandal 2022-12-15 18:17:00
比起這個我還覺得分號比較重要當然理論上沒上限 但你要好維護 當然要選擇當下條件下最簡潔的寫法boabomb說的還要糟過三元...
作者:
baobomb (baobomb)
2022-12-15 22:09:00樓上... Kotlin的if是表達式 所以沒有ternary operator Java的三元 如果純賦值且邏輯簡潔的話沒什麼問題 但Kt你要賦值一行式就是得 if else你if else沒有大括號 後面絕對超容易被改爛 尤其是Kotlin這種語法 單幹就算了 幾百人寫的repo你不加 真的很容易被新人搞爛
都要2023年了 什麼叫做浪費程式碼空間 XDDD
作者:
peter98 (新兵)
2022-12-16 00:52:00會在意程式碼空間多於維護性的 要嘛是在極為limited的資源(ram, disk)下寫程式 要馬是每寫過百人以上專案 不然就是程式寫得不好 通常是後兩者居多就是沒寫過*寫節省程式碼 該用的是OO技巧 而不是在這方面計較隨便做個refactor 把duplicate code拉到一個函式 節省的空間至少是三元運算子能節省的好幾倍跟薪水也依樣 很多人在討論好好幹IT 年薪150沒問題殊不知豬屎屋的起薪一堆就幹掉150了 IT怎麼努力也沒用就跟把if else改成三元運算節省空間依樣 沒用 太侷限
作者:
baobomb (baobomb)
2022-12-16 06:56:00同意樓上.. 程式碼空間應該靠的是oo 良好的DI 以及適當的refactoring.. 而不是什麼非得要一行.
作者:
gpctv (gpctv)
2022-12-16 10:05:00我被第一種寫法弄過
本來就該加括號,沒括號是在哭?看到不加括號火都上來
作者:
s860134 (s860134)
2022-12-16 12:40:00擴充 會放陷阱害人
作者:
angusyu (〒△〒)
2022-12-16 12:52:00Google的Java style確實有說都要加括號,但Kt style沒有.反正大家都按自己喜好跟公司傳統在吵,guidance沒人在乎
作者:
pig0038 (顆顆)
2022-12-16 15:47:00leetcode 很常看到第一種寫法, 但是我不會在PROD幹這種事在 OA 寫的時候我會先跟面試官聲明因為 java 寫 leetcode 實在太囉嗦了
作者: superpandal 2022-12-16 19:11:00
java本身就是OO 你不寫OO也得OO 把相同的功能封裝是正常人都會做的事情 但用三元的例子本身就是單純案例重點這種簡易判斷出現不會只有一次 出現的很頻繁 省下的程式碼空間和看長程式碼需要的暫時記憶以及如果找程式碼都是有幫助的s/如果//java也並非只有OO 也可以搭配FP 不明白這年頭為何開口閉口OO以及DI 樓主的例子要擴充加括號就好 本身第1種寫法也不是什麼不常見的做法至於kt如果只能如此那就沒辦法 有沒有過譽嫌疑我不知道 但以這例子來說確實糟糕
作者:
peter98 (新兵)
2022-12-16 21:35:00正常人會括號你應該是沒做過甚麼大project你連括號都不知道要加 才跟你提OO 怕你不知道呀
作者: superpandal 2022-12-16 22:10:00
有阿 大型專案都很亂 你看一下樓主的例子 括號是否必要 要加括號的時候自然會加沒有人會覺得用第一種寫法 如果一樣條件要增加程式直接放下面會能跑的...查了一下 kt可以不用分號也可以用 但分號很好只有shell我才不加分號 因為它同行分割需要'\'
作者:
Dnight (暗夜)
2022-12-17 11:52:00不加括號以後需求改了要多加一行你不是還是要括號那你為什麼要省那個括號
Linux kernel style是換行不加括號,看話語權沒錯XD
如果要改再一起加好了不是?精簡時最精簡不是很好嗎?
作者:
s8952889 (s8952889)
2022-12-18 00:20:00不懂少一個括號是有什麼好處?少打一些字??看了就賭爛
作者:
Dnight (暗夜)
2022-12-18 13:04:00既然你Que我了我只好多回一點了,我剛開始工作的時候也覺得怎麼可能有人看不懂,但是工作就是沒有最誇張只有更誇張你覺得if(XXX)a=2; 後面改個需求後面人會自己加括號,但是就是會有天兵直接在下面加一行b=XXX;你如果有加個括號我相信大部分人都知道要加在括號裡面,這樣就減少這種天兵犯錯的機會,你可能會覺得那是天兵的問題,可是前輩跟給講了會有天兵這樣搞,你有機會減少天兵犯錯的時候,除非你很有自信你的團隊只收菁英覺得不接受垃圾,不然你為什麼要挖洞給人跳萬一很不幸的哪天你接手的專案發現之前有個天兵幹了這件事然後你還不知道這個天兵有沒有可能在所有沒括號的地方幹同樣的事情,你可能就知道什麼是顯學,跟你講有人會看不懂不是因為我眼睛有問題看不懂,是我真的看過有人看不懂
作者:
sdwqdwd5 (sunshine)
2022-12-19 19:53:00純噓用Leetcode的coding style來比較*用Leetcode上看到的
作者:
redseye (揪及)
2022-12-19 22:46:00有大括號才是好習慣喔...
作者:
h821231 (bombshow)
2022-12-21 01:53:00單行不括號很醜 大型專案也不好維護 其他有括號突然來一行沒有的還不是閱讀困難這不是為了自己方便 而是為了大家方便 與其等別人眼殘改錯再來罵不如先加也沒什麼看不看舒服的問題 單純減少可能出錯的機會看到你有回論對錯什麼的 大家是在共同合作才盡量減少別人出包 而不是出包後花時間檢討誰錯 不會幫你加快進度除非你預設新人不會眼殘 或你們團隊不收非菁英 那我沒話說
作者: AminLA (101) 2022-12-22 17:55:00
Apple那個是被merge程式搞的吧
作者:
ma721 (UndeadJ)
2022-12-28 13:05:00加不是常識嗎....
作者:
siriusu (かがみは俺の嫁。)
2022-12-31 11:11:00我真的沒看過有知名專案不用加的 有例子嗎
這我一定blame除非原本repo全部都是這種 我就閉嘴