2011年10月9日 星期日

Code Review 大家都應該做的事情 3

作者: yy938559 (高個子) 看板: Soft_Job
標題: Re: [轉錄] Code Review: 大家都應該做的事情
時間: Fri Aug 19 03:09:41 2011

※ 引述《yoco315 (眠月)》之銘言:
: ※ 引述《yy938559 (高個子)》之銘言:
: 實在看不下去。
: 首先一間公司如果能作 code review 的人沒幾個,這種公司不待也罷。
: 因為 code review 並不難,如果一間公司沒幾人能作 code review,
: 那除非整間公司都是白痴。

有能力做code review的人本來就不多啊. 這會很奇怪嗎?
整間公司都程度不好也不是沒有吧.

: 程式碼的架構,絕對可以靠訓練達成,
: 短期有短期訓練,長期有長期的體驗,
: 《Solid Code》《Code Complete》《Code Craft》《Design Pattern》
: 都是可以在短時間裡面提昇程式碼品質的訓練,

短時間可以提昇? 你真的了解你說的東西嗎?

這些東西沒有個10年經驗, 不要說爐火純青.
連要決定要用在那裡都會有困難.

還提昇咧...


: 但是你說的沒錯,這些東西無法靠 code review 完成,為什麼?
: 「因為 code review 根本不該看這些」


你該不會以為code的架構是Visio/PowerPoint隨便幾個矩型, 塗上
幾個顏色就是架構吧? 還是像用UML一樣, 以為畫幾個diagrams,
可以產生insert/delete/update, 就是架構?

classes/methods的安排都是在coding時產生的.可以說是依經驗加一點
推理在人腦中runtime寫出的.

那些在沒有寫code前, 就說程式架構(指程式碼的安排)巳經設計好的,
不是太天真說大話, 或者騙子, 不然就是傳說中萬中選一的那位.

所以... code review 不review架構要review什麼?

: 就算你真的在 code review 的時候檢討架構好了,也保證有用,
: 除非你的同事們根本沒有心想聽,那不管作什麼都沒用,
: 但是有很多人不是不想、不是不能,他們只是不知道可以這麼作。
: code review 不看架構不看 style,看的是盲點跟一格洞,

語法不好, 演算法不佳, 邏輯不周, 或不夠了解tools的特性而使用不當等問題,
這些問題花點時間, 通常就可以處理. 如果真的處理不來, 也可以問別人.
可以處理/問人的東西, 又何需review呢?

沒有人會故意寫爛code的, 是因為實在handle不了, 才會出怪招.
而程度不夠的人, 每天所產生爛code的速度, 遠超過你能review的.
不要讓這種人繼續寫code, 才能加速開發的速度不是嗎?
所以, 也不需要review爛code啊! 停止產生才是正道.

而架構reivew? 我說實際一點好了.
以你的經驗, 如果review一個程度不夠的人, 如果他能follow的話,
那你也不用混了. 不能follow的話, 那何必浪費時間reveiw呢?

: code review 明明就是實務的東西,
: 你怎麼會以為他是學院派,實在令人很無言。

有經驗的人都知道, 遇到一個困難時, 有時候花時間努力也不見得能處理.
這和人的經驗/資質/能力/運氣/靈感是有關的.

code reivew 在我的觀點就是這樣:

除了review架構之外, 其他東西是不需review的.


不是這方法不對. 而是在現實世界中,
你很難(應該說不可能發生)同時找到一個有能力review
又同時有一個有能力做相對應改變的人.
如果有這樣子的配對, 以這樣子的程度, 那可能還需要review?

不實用的東西, 不是學院派的話, 難道是實務派?

我知道又要被噓了. 沒辦法我的眼界就只到這裡. 如果鬧了笑話,
請各位多包涵啊.

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.69.151.170
→ TonyQ:提昇不等於爐火純青...學英文單字可以組句子,但學英文       08/19 03:27
→ TonyQ:單字不能馬上就會寫文章。:P                                08/19 03:27
→ TonyQ:問人也是code review 的一種型態啊:P                        08/19 03:28
→ TonyQ:寫好一段code拿去問人這合不合用,有沒有問題,也是一種      08/19 03:28
→ TonyQ:code review。你不是認為code review沒用,只是你認定的code  08/19 03:29
→ TonyQ:review 已經是一種特化的形式吧。:P                         08/19 03:29
→ TonyQ:codereview 要減少的就是「花點時間」的時間成本,           08/19 03:30
→ TonyQ:做這麼久了也都知道,為一隻白痴bug花上很多時間的狀況,     08/19 03:31
→ iman00b:我認識的神人,都是在寫程式前就大概規劃好架構            08/19 03:31
→ TonyQ:那時如果有人可以pair或review,有機會很快解掉。            08/19 03:31
→ TonyQ:賺得就是這個東西。ps.我同意架構需要review,但那是design   08/19 03:32
→ TonyQ: review. 跟code review 有關但不完全說的是code review      08/19 03:32
→ iman00b:我第一次看到,真的是汗涔涔淚潸潸可以形容,              08/19 03:32
→ iman00b:原來程式是要這樣寫,而不是一開始就埋頭下去開始 coding   08/19 03:33
→ iman00b:這對我後來寫程式有很大幫助,一開始的規劃設計是很重要的  08/19 03:34
→ iman00b:你沒見過,不代表沒有人有辦法                            08/19 03:34
→ iman00b:看某些書是真的會有幫助,像 Writing Solid Code~          08/19 03:35
→ yy938559:原來樓上的code是在設計階段就想好了. 真的配服啊.        08/19 03:36
→ iman00b:這本書很實務的,不是像系統設計那類專打高空的書          08/19 03:36
→ iman00b:我是說架構啊 我寫二十年的 code 了 我想我有資格說吧?    08/19 03:40
→ pest:你所謂的"不實用"的事,在Google能做,在我任職的公司也能做     08/19 04:01
→ pest:不知道"不實用"在哪?                                        08/19 04:01
→ pest:這感覺怎麼很像寫機器語言的人在說寫OO不實用只是打高空?      08/19 04:02
→ yoco315:你高興就好.. 反正感謝老天我不用跟你還有L共事 -_-        08/19 04:29
→ yoco315:無知真的不打緊,肯學是重要的,態度有病的話,永遠不會進步   08/19 04:30
→ yoco315:code review 對你們這種人來說的確是一點用也沒有          08/19 04:31
→ yoco315:而且我懷疑有任何東西對你們有用.. @@                     08/19 04:31
→ leeyh:初架構應該設計階段就要完成, CRC不就是這種用途 @_@         08/19 05:58
→ leeyh:寫程式的忌諱不就是搞不清楚要寫什麼就動手嗎@_@""           08/19 05:58
→ leeyh:我以為 code review 就是檢驗那段code是否做到該做/想做的    08/19 06:02
→ leeyh:要不要做是另一回事, 絕大多數程式設計師都能讀程式碼(吧!?)  08/19 06:05
→ Lordaeron:唉, yoco315你回不下去, 就別再對人了.                  08/19 07:20
推 leicheong:我只是想說, 有心學老鳥的寫法可以自己開source看,不是   08/19 07:27
→ leicheong:一定要靠code review...                                08/19 07:28
→ leicheong:無心學的即使有code review也不會學到甚麼, 只是會氣死   08/19 07:30
→ leicheong:老鳥吧...                                             08/19 07:30

沒有留言:

張貼留言

您好.本資料庫並非第一手資料.如果你有對文章作者的詢問,意見與需求,請自行找尋文章作者並提供意見,謝謝.