看板Soft_Job
前文恕刪~
其實code review是應該要作的事,但是大家喜不喜歡是另一回事。
就像大家都知道要寫文件寫註解,寫不寫又是另外一回事
前公司就有作code review,不過二十幾個工程師,只有我被review。
為什麼?因為我配合度高,應該作的事就會去作~~
所以很多實驗性質或主管想推的東西,我都是白老鼠~~
不過我並不排斥就是了,當白老鼠有當白老鼠的好處,雖然有些實驗不太好。
簡單的歸納幾點code review應該被實行的原因還有為什麼作不起來。
應該被實行的理由其實很簡單,好處有以下幾點:
1. 人不是神,偶爾會犯很簡單的錯誤。
例如原本要寫 == ,可是不小心copy錯誤或者精神不濟打成 = 或者!=
很誇張?但這都是會發生的。至少我有看過
2. 讓其他人能學習。
有些比較特殊的處理或演算法,或者機器傳回來的特別回應,常常要
當事人摸索很多天才會遇到,這時候code review可以協助讓其他工程
師注意到這個特殊的地方或者學習到好的演算法或處理。
3. 讓其他人能在他休假時協助修改此段程式碼。
如果發生了bug,有code review可能可以知道bug在哪或者哪裡要修改。
4. 避免為了偷懶而不寫註解或不作error handle。
有時候寫程式會偷懶不寫註解或覺得不必要寫註解,或者偷懶忘記作
error handle等,在code review時會被詢問及,也會補上。
5. 有些自己沒想到或沒注意到的想法會被提及。
因為每個人想法和注意到的點不同,在code review時,對方可能會提出
自己沒注意到的地方,或者程式碼沒處理到的部分,這是還蠻常見的。
為什麼實行不起來的原因:
1. 態度的問題。
review別人和被review的人,可能是主管對下屬,同事對同事,
資深對資淺等,都有可能,那麼人與人相處,就會有態度的問題。
有些人就是不喜歡被review,就算他的code有問題,也會硬拗強辯,
覺得自己很厲害,你不懂或者你有什麼資格review他。
有些人是review別人時,態度就像老子對兒子,硬是要吹毛求疵,
挑一些無關痛癢的小毛病。主管對下屬review時常會這樣。
有些錯誤只要講一下提醒對方改進或建議一下就好,但是態度比較差的
就會酸對方:這個你都會寫錯喔; 這種code只有你這種天才寫的出來;
這種東西你還要寫三天; (看著你皺眉,什麼都不說=.=);
每個人被挑剔或被酸時都會不爽的,今天如果是自己被酸也是一樣的。
2. 大家都很忙
每個人都有專案趕的要死,還要花時間review實在很累,所以只要程式
能跑就好了,品質以後再說~~有bug等客戶唉了再講~
3. 沒有夠能力的人來review
有些東西只有你熟或者有能力review的人在開會或在忙沒辦法review,
那麼常常會派另外一個工程師來review,偏偏他作的東西跟你不一樣,
也不懂你作的東西,那麼review幾乎是沒什麼功能,只是跟對方講述
一下自己的code作了什麼而已。
4. 有些人不喜歡分享code
有些人把code當作自己的財產,不喜歡跟人分享,或者他覺得自己的
code很厲害,不想要教別人,或者想要藏私,當公司開除他會不給他
加薪要離職時,故意不交代code讓接的人頭痛,很多都是有可能的。
5. review沒有重點,全部一字不漏的報告
有些人review就要求對方從頭到尾一字不漏的報告,一行一行的說明
每一段程式碼的功能,這樣對被review的人很累,而且有些東西還真
的就只是copy過來可以動就好(雖然程式碼最好還是能理解才用),這樣
不僅review很花時間也很耗雙方心力,而且被review的人會遇到很多
地方都是自己copy過來用而已,這是一種心理負擔。
所以review其實應該要著重在關鍵程式碼,有一些重複或不必要的地方,
可以省略不看。
至於哪些地方可以略過,哪些是重點,這應該是有經驗的工程師會比較
瞭解的。
不要忘記code review最重要的本質,是為了提升程式品質。
小弟的原則就是每個人都會犯錯,有錯改掉就好了,但是有些人見到別人犯錯,
就像貓看到老鼠一樣,窮追不捨,見獵心喜,甚或洋洋得意=.=
實在很累。
--
追求卓越,成功就會出其不意找上門。
Follow Excellence. Success will chase you.
Chase the excellence, success will follow you.
--
◆ From: 60.248.203.138
這裡我有講錯的地方要修正,因為是有另外一個主任工程師會去
review大家的code,但是不是面對面在commit code前那種review,
而是在code進SVN後會去review。
我也贊同只是講述一下自己的code做了什麼,應該是有更多效益的。
所以講code review沒什麼功能這句應該要修正。
test case前公司內是另外QA team負責的,他們也是有做review,不過他們是
不寫code的那種QA
※ 批踢踢實業坊(ptt.cc)※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1313748994.A.704.html
推 hanbz:3真的挺重要的,尤其是有人離職沒交接的時候XD 08/19 18:21
→ rofellosx:3的發生可能性? 08/19 18:22
推 tsukiyomi:推好處4. 5. 跟壞處1. 08/19 23:21
→ tsukiyomi:台灣人不像外國人可以那麼大方接受批評,可能會有好了 08/19 23:24
→ tsukiyomi:程式卻壞了人際關係的副作用出現 08/19 23:24
推 leicheong:壞處3的話, unit test project其實就是相當好的code 08/19 23:27
→ leicheong:documentation吧. 只要把不對頭的輸入作成test case, 很 08/19 23:28
→ leicheong:自然就會break到相關的code裡, 要修正也不一定需要理解 08/19 23:29
→ leicheong:那專案在做甚麼的... 08/19 23:29
→ leicheong:我的前公司也沒在code review, 但要臨時上馬的情況其實 08/19 23:31
→ leicheong:不少, 而且很多都是有限半小時到一小時內修正的. 修多了 08/19 23:32
→ leicheong:就理解內部data flow怎樣走了... 08/19 23:32
→ TonyQ:「只是跟對方講述一下自己的code作了什麼而已」這就已經夠了 08/20 00:24
→ TonyQ:test case 也需要 code review 啊 要說一間公司完全沒有code 08/20 00:26
→ TonyQ:review 我是不相信的. XD 08/20 00:26
→ Lordaeron:台灣有N 間公司完全沒有code review 的,不知你見過幾間? 08/20 08:46
→ TonyQ:討論程式碼跟實作就是一種code review,你在告訴我有公司 08/20 09:11
→ TonyQ:完全不討論他們現有的程式碼跟現有的實作? 08/20 09:11
→ TonyQ:這個N給個好開心啊,舉幾個例子吧? 08/20 09:12
推 ppHomer:嗯...不管當貓還是老鼠都 實在很累 08/30 12:41