成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

高效代碼審查的十個經驗

開發 開發工具
代碼審查本身可以提高開發者的能力,讓其從自身犯過的錯誤中學習,從他人的思路中學習。如果開發者對這個流程有抵觸或者反感,這個目的就達不到。

代碼審查(Code Review)是軟件開發中常用的手段,和QA測試相比,它更容易發現和架構以及時序相關等較難發現的問題,還可以幫助團隊成員提高編程技能,統一編程風格等。

1. 代碼審查要求團隊有良好的文化

 團隊需要認識到代碼審查是為了提高整個團隊的能力,而不是針對個體設置的檢查“關卡”。

“A的代碼有個bug被B發現,所以A能力不行,B能力更好”,這一類的陷阱很容易被擴散從而影響團隊內部的協作,因此需要避免。

另外,代碼審查本身可以提高開發者的能力,讓其從自身犯過的錯誤中學習,從他人的思路中學習。如果開發者對這個流程有抵觸或者反感,這個目的就達不到。

2. 謹慎的使用審查中問題的發現率作為考評標準

[[97407]]

在代碼審查中如果發現問題,對于問題的發現者來說這是好事,應該予以鼓勵。但對于被發現者,我們不主張使用這個方式予以懲罰。軟件開發中bug在所難免,過度苛求本身有悖常理。更糟的是,如果造成參與者怕承擔責任,不愿意在審查中指出問題,代碼審查就沒有任何的價值和意義。

3. 控制每次審查的代碼數量

根據smartbear在思科所作的調查,每次審查200行-400行的代碼效果***。每次試圖審查的代碼過多,發現問題的能力就會下降,具體的比例關系如下圖所示:

我們在實踐中發現,隨著開發平臺和開發語言的不同,***的代碼審查量有所不同。但是限制每次審查的數量確實非常必要,因為這個過程是高強度的腦力密集型活動。時間一長,代碼在審查者眼里只是字母,無任何邏輯聯系,自然不會有太多的產出。

4. 帶著問題去進行審查

我們在每次代碼審查中,要求審查者利用自身的經驗先思考可能會碰到的問題,然后通過審查工作驗證這些問題是否已經解決。一個竅門是,從用戶可見的功能出發,假設一個比較復雜的使用場景,在代碼閱讀中驗證這個使用場景是否能夠正確工作。

使用這個技巧,可以讓審查者有代入感,真正的沉浸入代碼中,提高效率。大家都知道看武俠小說不容易瞌睡,而看專業書容易瞌睡,原因就是武俠小說更容易產生代入感。

有的研究建議每次樹立目標,控制單位時間內審核的代碼數量。這個方法在我們的實踐中顯得很機械和流程化,不如上面的方法效果好。

5. 所有的問題和修改,必須由原作者進行確認

如果在審查中發現問題,務必由原作者進行確認。

這樣做有兩個目的:

(1)確認問題確實存在,保證問題被解決

(2)讓原作者了解問題和不足,幫助其成長

有些時候為了追求效率,有經驗的審查者更傾向于直接修改代碼乃至重構所有代碼,但這樣不利于提高團隊效率,并且會增加因為重構引入新bug的幾率,通常情況下我們不予鼓勵。

6.利用代碼審查激活個體“能動性"

即使項目進度比較緊張,無法完全的進行代碼審查,至少也要進行部分代碼的審查,此時隨即抽取一些關鍵部分是個不錯的辦法。

背后的邏輯是,軟件開發是非常有創造性的工作,開發者都有強烈的自我驅動性和自我實現的要求。讓開發者知道他寫的任何代碼都可能被其他人閱讀和審察,可以促使開發者集中注意力,尤其是避免將質量糟糕,乃至有低級錯誤的代碼提交給同伴審查。開源軟件也很好的利用了這種心態來提高代碼質量。

7.在非正式,輕松的環境下進行代碼審查

如前所述,代碼審查是一個腦力密集型的工作。參與者需要在比較輕松的環境下進行該工作。因此,我們認為像某些實踐中建議的那樣,以會議的形式進行代碼審查效果并不好,不僅因為長時間的會議容易讓效率低下,更因為會議上可能出現的爭議和思考不利于進行如此復雜的工作。

8.提交代碼前自我審查,添加對代碼的說明

所有團隊成員在提交代碼給其他成員審查前,必須先進行一次審查。這次自我修正形式的審查除了檢查代碼的正確性以外,還可以完成如下的工作:

(1)對代碼添加注釋,說明本次修改背后的原因,方便其他人進行審查。

(2)修正編碼風格,尤其是一些關鍵數據結構和方法的命名,提高代碼的可讀性。

(3)從全局審視設計,是否完整的考慮了所有情景。在實現之前做的設計如果存在考慮不周的情況,這個階段可以很好的進行補救。

我們在實踐中發現,即使只有原作者進行代碼審查,仍然可以很好的提高代碼質量。

9.實現中記錄筆記可以很好的提高問題發現率

成員在編碼的時候應做隨手記錄,包括在代碼中用注釋的方式表示,或者記錄簡單的個人文檔,這樣做有幾個好處:

(1)避免遺漏。在編碼時將考慮到的任何問題都記錄下來,在審查階段再次檢查這些問題都確認解決。

(2)根據研究,每個人都習慣犯一些重復性的錯誤。這類問題在編碼是記錄下來,可以在審查的時候用作檢查的依據。

(3)在反復記錄筆記并在審查中發現類似的問題后,該類問題出現率會顯著下降

10. 使用好的工具進行輕量級的代碼審查

“工欲善其事,必先利其器”。我們使用的是bitbucket提供的代碼托管服務。

每個團隊成員獨立開發功能,然后利用Pull Request的形式將代碼提交給審查者。復審者可以很方便在網頁上閱讀代碼,添加評論等,然后原作者會自動收到郵件提醒,對審閱的意見進行討論。

即使團隊成員分布在天南海北,利用bitbucket提供的工具也能很好的進行代碼審查。

原文鏈接:http://www.html5cn.org/article-4001-1.html

責任編輯:張偉 來源: HTML5中國
相關推薦

2022-07-30 23:35:49

軟件開發代碼編輯器Web

2014-10-29 13:52:38

程序員

2023-10-29 17:12:26

Python編程

2025-07-01 09:46:30

2021-01-27 11:24:00

項目經理技術技能項目管理

2023-10-07 16:28:01

2023-07-25 16:14:51

Python技巧

2024-05-20 08:30:00

Python編程

2011-07-13 18:09:07

編程語言

2024-09-03 09:44:03

2012-01-17 13:54:02

PHP

2024-11-18 19:00:29

2024-05-21 12:18:57

Python代碼重構

2024-04-09 00:00:00

Java代碼片段

2024-12-27 08:14:28

2024-11-25 16:08:57

Python代碼代碼調試

2025-05-29 08:35:39

Python代碼開發

2024-09-26 15:00:06

2023-10-04 00:17:00

SQL數據庫

2023-11-19 20:16:43

RESTAPIPOST
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天爽天天操 | 国产伦精品一区二区三区精品视频 | 免费观看的av毛片的网站 | 国产亚洲精品久久午夜玫瑰园 | 九色在线观看 | 91精品国产综合久久久动漫日韩 | 一区二区三区免费观看 | 国产精品成人在线观看 | 一级片免费视频 | 国产精品区二区三区日本 | 亚洲视频在线一区 | 欧美激情在线精品一区二区三区 | 色视频成人在线观看免 | 国产线视频精品免费观看视频 | 精久久久| 美女久久久久久久 | 懂色av蜜桃av| www.久久久久久久久久久 | 在线视频99 | 91国内精品久久 | 久久久91 | 羞羞的视频免费在线观看 | 高清一区二区视频 | 欧美精品国产精品 | 精精国产xxxx视频在线播放 | 日韩免费视频一区二区 | 国产99久久久国产精品 | 在线啊v | 国产性色视频 | 999精品在线 | 超碰成人免费观看 | 二区中文字幕 | 日本一区二区在线视频 | 一区二区三区欧美在线观看 | 手机三级电影 | 亚洲国产精久久久久久久 | 欧美一区二区三区免费在线观看 | 成人做爰www免费看视频网站 | 91久久久久久 | 日韩激情在线 | 福利一区二区在线 |