Re: [轉錄] Code Review: 大家都應該做的事情
※ 引述《lovdkkkk (dk)》之銘言:
: 前文恕刪
: 我覺得 code review 是有用處的, 首先是人難免會寫些蠢 code,
: 例如
: if (a == b)
: return true;
: else
: return false;
: 或者
: if (b) {
: // just do nothing
: }
: else {
: do something...
: }
: 蠢不蠢? 實在真的有夠蠢, 蠢到我講給別人聽自己都會笑個不停,
: 但是沒辦法, 有時一段 code 修來改去就是會變這樣,
: 我也沒辦法確保自己未來不會再寫出這類 code,
: 因為當下真的很難意識得到
: 也不一定只有強的能 review 比較不強的, 前不久我就看到一段多餘邏輯,
: 寫的人是二三十年老經驗, 我也認為他很強, 但還是發生了,
: 大概像底下
: if (b) {
: if (a)
: do something
: }
: if (!b) {
: if (a)
: do something
: }
: 這不是強弱問題, 不是經驗多少問題,
: 只是智者千慮必有一失, 廢材腦袋空空做白日夢還是會偶有一得,
: 不考慮上面的部份, 另一個角度來說這也關係到壓力及生產力,
: 這部份就需要一個高手來 review 底下菜鳥,
: 假若流程是寫完 code 直接上線跑測試的話, 那對菜鳥來說壓力其實是大的,
: 因為沒有人把關, 要全靠自己, 反應下去就是效率會是低的,
: 因為菜鳥要花數十到上百倍的時間, 才有辦法寫出跟高手一樣水準的東西,
: 假若流程是寫完 code 後會經由高手 code review 再修改過,
: 對菜鳥來說他可以放心大膽的寫一個比較粗糙的原型,
: 再由高手花一點點時間將它精緻, 菜鳥也順便學習,
: 對高手來說, 可以省去做原型中苦工的部份,
: 只做最後精緻及調整的部份, 也能順便接收一些菜鳥花功夫整理過的資料,
: 這邊有個前提是要有一定的規範及標準, 菜鳥寫也不是隨便亂寫,
: 仍然要符合一定的架構原則及風格, 高手來看才不會反而更費功夫,
: 工作內容也應該訂清楚, 把苦工做到哪裡, 什麼情況該反應等等
: 這其實是對菜鳥和高手都有好處, 菜鳥可以吸收一些高手的歷練,
: 高手可以省去一些不太花腦但是耗時費工的苦工,
: 當然菜鳥不可能立刻能提昇多少, 但即使每次只有一點點小進步,
: 累積一兩年後也是很可觀的
根據我的認知
一段code好不好可以從很多角度來評估
其中包括效能 可維護性 可閱讀性等等
拿lovdkkkk的部分片段舉例好了
if (a == b)
return true;
else
return false;
這段code在效能上有差嗎
我想用3元運算的寫法大概只是code會變得比較短而已吧
但是可閱讀性不見得比較好
我想說的是...有時候比較長的code未必就是爛
在不影響效能的前提下
就算寫長一點 讓人比較好閱讀會比較好
要是寫個很短的code.. 然後讓人一看到就想...
"沒看過這種寫法 這真的能跑嗎"?
然後別人可能就需要花時間去驗證
就算驗證結果真的能跑 也不見得好
我曾經寫過if(a==true)或if(a==false)之類的code然後被人批評=.=+
當然...寫if(a)或if(!a)看起來會比較簡短
不過我看code會比較喜歡看到別人寫if(a==true) 覺得這樣比較清楚
我覺得所謂的笨code應該是效能影響太大或邏輯有錯的code
例如:
ArrayList tempList;
...(tempList的值可能被改變)
if(tempList.size()==0||tempList==null){
...
}
我覺得這個才叫笨code
喜歡寫短code的話...不如去看一本叫做short coding的書吧
該書內容是在敘述如何寫出最簡短的code...
就算程式跑起來很容易出問題或者有很多限制也沒關係
或許那種code看起來很聰明...但是我認為...
那只是整閱讀的人用的而已
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.125.198
推
08/20 10:32, , 1F
08/20 10:32, 1F
→
08/20 10:33, , 2F
08/20 10:33, 2F
→
08/20 10:34, , 3F
08/20 10:34, 3F
→
08/20 10:34, , 4F
08/20 10:34, 4F
→
08/21 01:41, , 5F
08/21 01:41, 5F
推
09/01 23:29, , 6F
09/01 23:29, 6F
推
09/21 02:19, , 7F
09/21 02:19, 7F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 17 之 18 篇):