Re: [轉錄] Code Review: 大家都應該做的事情
※ 引述《yy938559 (高個子)》之銘言:
實在看不下去。
首先一間公司如果能作 code review 的人沒幾個,這種公司不待也罷。
因為 code review 並不難,如果一間公司沒幾人能作 code review,
那除非整間公司都是白痴。
程式碼的架構,絕對可以靠訓練達成,
短期有短期訓練,長期有長期的體驗,
《Solid Code》《Code Complete》《Code Craft》《Design Pattern》
都是可以在短時間裡面提昇程式碼品質的訓練,
我還沒見過哪一個人唸過這些東西以後程式碼品質沒有提昇的,
寫出來的東西就是漂亮、架構好、又容易 maintain,
除非你帶過的人都是白痴,因為我的同事都是有唸有吸收。
而這些東西除了可以靠自己唸,
也可以靠內部訓練的時候同事們彼此交流。
但是你說的沒錯,這些東西無法靠 code review 完成,為什麼?
「因為 code review 根本不該看這些」
另外 god class, naming style 的問題,這也不是 code review 該做的,
都已經什麼年代了,這種東西用 tool 掃一次就好了,
沒通過的根本不用被 review 也不能 check in,打回去寫到對為止。
誰叫你 code review 去看架構跟 coding style 的?
你弄錯 code review 的意義,然後說 code review 沒有用,
這很像你拿著 AK47 然後說 AK47 不能用來炒菜一樣。
講真的我無法跟你訴說 code review 有什麼好處,
就像你無法告訴一個沒體驗過高潮的人你射精的瞬間有多爽一樣。
這就罷了,
就算你真的在 code review 的時候檢討架構好了,也保證有用,
除非你的同事們根本沒有心想聽,那不管作什麼都沒用,
但是有很多人不是不想、不是不能,他們只是不知道可以這麼作。
code review 不看架構不看 style,看的是盲點跟一格洞,
程式設計師寫程式就會有盲點,就會有沒想到的東西,
有的東西,程度再強的程式設計師也無法自己修正,
因為所謂的盲點就是自己看不到的東西,
那行程式碼自己看一百次也看不出來有錯,
但是旁邊的新人一眼就知道錯了。
如果你真的如你所說寫了二十年的程式,
那你應該知道我在講啥。
code review 明明就是實務的東西,
你怎麼會以為他是學院派,實在令人很無言。
你看過哪個大學生寫作業的時候還在 code review 的嗎?
如果真的寫了幾十年還覺得 code review 沒用,
只有兩種可能性,一種就是你超強,然後你的同事都是豬,
所以他們既無法 review 你的 code,也無法吸收你給他們的建議。
另外一種是公司根本不重視長期的軟體品質,所以東西怎麼寫都沒關係。
※ 引述《yy938559 (高個子)》之銘言:
: Code review?
: 別鬧了吧. 一家公司有能力做code review的有幾個?
: 好啦, 即使有人可以review, 並review出問題了, 有能力改嗎?
: 不可能吧. 就是因為經驗不足才會有這種狀況啊!
: 光是提出問題, 就能讓程度不夠的人立刻升級嗎? 不可能啊!
: 許多經驗不足, 但覺得自己很強的高手(通常是寫code不到十年的),
: 雖然寫code速度快, 博學多聞, 資料結構一把罩, 說起架構, design patterns
: 也是頭頭是道. 但寫起code來, 總是code架構不佳, 不好maintain.
: 這不是懂的多不多的問題, 也不是努力不努力的問題, 純綷是歷練的問題.
: 有些能力, 特別是code的架構安排,沒有長時間的體會, 就是不會到達那個火喉.
: 不服氣的人, 回去看看你去年寫的code, 如果你覺得去年寫的code讓
: 自己很驚艷, 那你就算是有經驗的programmer. 如果覺得自己程度明明很好,
: 但怎麼寫的code普普通通, 我說, 你就是經驗還不足.
: (我沒說未來無法達到這程度喔)
: 這麼說好了, code review之所以知易行難的原因是:
: review所出現的問題中, 無法處理的問題, 都是code的架構問題,
: 這些東西和programmer的經驗有關. 無法透過短期/長期教育來提升.
: 所以, 有能力改的人, 不用review, 自己也會在過程中修正.
: 沒能力改的人, 也不用改了. 多改只是create愈多問題.
: 至於那些像 SQL injection 要改成 bind variables,
: lookup table 用array, naming styles 不一致, code 亂成一團,
: 常常有超大method/class, copy-paste code一堆這些東西等問題.
: 如果到了要處理的程度, 那麼在處理之前, 先fire寫這些code的人吧.
: 唉...要被噓暴了.
--
To iterate is human, to recurse, divine.
遞迴只應天上有, 凡人該當用迴圈. L. Peter Deutsch
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.104.36
推
08/18 11:40, , 1F
08/18 11:40, 1F
推
08/18 11:45, , 2F
08/18 11:45, 2F
推
08/18 12:50, , 3F
08/18 12:50, 3F
推
08/18 13:43, , 4F
08/18 13:43, 4F
→
08/18 22:35, , 5F
08/18 22:35, 5F
→
08/18 22:36, , 6F
08/18 22:36, 6F
→
08/18 22:37, , 7F
08/18 22:37, 7F
→
08/18 22:39, , 8F
08/18 22:39, 8F
→
08/18 22:40, , 9F
08/18 22:40, 9F
→
08/18 22:45, , 10F
08/18 22:45, 10F
→
08/18 22:47, , 11F
08/18 22:47, 11F
→
08/18 22:48, , 12F
08/18 22:48, 12F
→
08/18 22:48, , 13F
08/18 22:48, 13F
→
08/18 22:51, , 14F
08/18 22:51, 14F
→
08/18 22:51, , 15F
08/18 22:51, 15F
→
08/18 22:52, , 16F
08/18 22:52, 16F
推
08/18 22:58, , 17F
08/18 22:58, 17F
推
08/18 23:01, , 18F
08/18 23:01, 18F
→
08/18 23:10, , 19F
08/18 23:10, 19F
→
08/18 23:11, , 20F
08/18 23:11, 20F
→
08/18 23:11, , 21F
08/18 23:11, 21F
→
08/18 23:11, , 22F
08/18 23:11, 22F
→
08/18 23:13, , 23F
08/18 23:13, 23F
→
08/18 23:13, , 24F
08/18 23:13, 24F
推
08/18 23:18, , 25F
08/18 23:18, 25F
推
08/18 23:26, , 26F
08/18 23:26, 26F
→
08/18 23:26, , 27F
08/18 23:26, 27F
→
08/18 23:27, , 28F
08/18 23:27, 28F
→
08/18 23:27, , 29F
08/18 23:27, 29F
→
08/18 23:28, , 30F
08/18 23:28, 30F
→
08/18 23:47, , 31F
08/18 23:47, 31F
→
08/18 23:47, , 32F
08/18 23:47, 32F
→
08/19 00:47, , 33F
08/19 00:47, 33F
→
08/19 00:47, , 34F
08/19 00:47, 34F
→
08/19 00:48, , 35F
08/19 00:48, 35F
→
08/19 00:49, , 36F
08/19 00:49, 36F
→
08/19 00:49, , 37F
08/19 00:49, 37F
→
08/19 00:49, , 38F
08/19 00:49, 38F
→
08/19 00:50, , 39F
08/19 00:50, 39F
還有 230 則推文
→
08/20 09:10, , 270F
08/20 09:10, 270F
→
08/20 09:12, , 271F
08/20 09:12, 271F
→
08/20 09:13, , 272F
08/20 09:13, 272F
→
08/20 09:14, , 273F
08/20 09:14, 273F
→
08/20 09:14, , 274F
08/20 09:14, 274F
→
08/20 09:15, , 275F
08/20 09:15, 275F
→
08/20 09:15, , 276F
08/20 09:15, 276F
→
08/20 09:16, , 277F
08/20 09:16, 277F
→
08/20 10:34, , 278F
08/20 10:34, 278F
推
08/20 10:44, , 279F
08/20 10:44, 279F
→
08/20 10:45, , 280F
08/20 10:45, 280F
→
08/20 10:46, , 281F
08/20 10:46, 281F
→
08/20 10:46, , 282F
08/20 10:46, 282F
→
08/20 10:46, , 283F
08/20 10:46, 283F
→
08/20 11:17, , 284F
08/20 11:17, 284F
→
08/20 11:18, , 285F
08/20 11:18, 285F
→
08/20 11:20, , 286F
08/20 11:20, 286F
→
08/20 11:20, , 287F
08/20 11:20, 287F
→
08/20 11:21, , 288F
08/20 11:21, 288F
→
08/20 11:21, , 289F
08/20 11:21, 289F
→
08/20 11:22, , 290F
08/20 11:22, 290F
→
08/20 11:23, , 291F
08/20 11:23, 291F
→
08/20 11:23, , 292F
08/20 11:23, 292F
→
08/20 11:24, , 293F
08/20 11:24, 293F
→
08/20 11:24, , 294F
08/20 11:24, 294F
→
08/20 11:24, , 295F
08/20 11:24, 295F
→
08/20 11:24, , 296F
08/20 11:24, 296F
→
08/20 11:26, , 297F
08/20 11:26, 297F
推
08/20 14:34, , 298F
08/20 14:34, 298F
→
08/20 14:35, , 299F
08/20 14:35, 299F
→
08/20 16:06, , 300F
08/20 16:06, 300F
→
08/20 16:11, , 301F
08/20 16:11, 301F
→
08/20 23:41, , 302F
08/20 23:41, 302F
→
08/20 23:42, , 303F
08/20 23:42, 303F
→
08/22 09:23, , 304F
08/22 09:23, 304F
→
08/22 09:24, , 305F
08/22 09:24, 305F
→
08/22 09:26, , 306F
08/22 09:26, 306F
推
08/22 14:27, , 307F
08/22 14:27, 307F
→
08/22 14:29, , 308F
08/22 14:29, 308F
→
08/22 14:29, , 309F
08/22 14:29, 309F
討論串 (同標題文章)