Codereivew是開發(fā)團隊中經(jīng)常采用的,為提高代碼質(zhì)量、提高編碼規(guī)范的一種手段。針對實際工作組織review過程中的一些想法、見解,作一下總結(jié)。
關(guān)于CodeReview的幾點作用:
1、提高團隊的編碼規(guī)范,培養(yǎng)良好的coding風(fēng)格
旨在提高整個團隊的編碼規(guī)范程度,統(tǒng)一編碼風(fēng)格。通過每次的codereivew,發(fā)現(xiàn)團隊成員在實際開發(fā)中的一些細節(jié)問題,如不良的編碼習(xí)慣、錯誤的調(diào)用方式等。通過多次的發(fā)現(xiàn)、解決問題,使大家都養(yǎng)成良好的編碼習(xí)慣。review的內(nèi)容一般包括:
1)、異常、日志的處理;
2)、常量的定義及使用;
3)、字符串處理、BigDecimal.ZERO等;
4)、代碼的封裝,提高重用性;
5)、代碼注釋情況;
6)、javascript文件的抽取情況;
2、檢查業(yè)務(wù)邏輯
對項目實現(xiàn)的功能邏輯進行一次reivew,結(jié)合眾人發(fā)散思維,檢查業(yè)務(wù)邏輯是否有盲點或錯誤。通常需要參與review的成員能夠靜下心來深入地認真分析,比較耗費時間。
3、分享和培訓(xùn)
每個項目的工作安排相對來說都是比較緊湊的,所以每個團隊成員在完成自己的開發(fā)任務(wù)完,沒有太多的時間去了解或熟悉其他成員的功能實現(xiàn)。但對于敏捷開發(fā)來說,每個功能模塊的開發(fā)者并不是固定的,根據(jù)項目需要,很有可能由非原開發(fā)人員來完成增值功能或重構(gòu),所以codereivew是一次不錯的培訓(xùn)及分享機會,特別是對功能相對復(fù)雜的需求實現(xiàn)。可以讓團隊成員了解或熟悉基本的設(shè)計思想和相關(guān)的類定義,確保在今后接手這一塊工作時,可以更快的上手或找到最到最合適的人去了解更深層的邏輯。
關(guān)于reivew的方式:
1、集體review;
項目成員一起參與codereive,成本比較大,一般一個項目組織一次。比較適合開發(fā)經(jīng)驗分享,以及新功能的實現(xiàn)介紹,利于其他成員了解、熟悉實現(xiàn)者的設(shè)計思路及代碼結(jié)構(gòu),在后續(xù)項目接手這些新功能時,更加從容。
2、TM組織若干開發(fā)經(jīng)驗豐富的一起review;
3、分組、交叉review;
具有較好的靈活性,根據(jù)情況隨時找相關(guān)人員一起對已實現(xiàn)的代碼進行review,及時發(fā)現(xiàn)過程中問題并予以修正。比較適合分組\抱團開發(fā),以2-3人為單位,對具體的功能模塊負責(zé),一起分析、設(shè)計、編碼,每位成員對于功能邏輯都比較邏輯,對業(yè)務(wù)邏輯reivew有比較好的效果。
實際工作中,根據(jù)實際情況靈活選擇合適的review方式,不應(yīng)拘于某種形式。review過程,應(yīng)有明確的目的,具有針對性,而不是停留于表面,避免逐漸成為一種負擔(dān),流于形式。另外,應(yīng)對每次review結(jié)果,整理出一份問題列表,進行分析和總結(jié),避免相同問題的重復(fù)出現(xiàn)。同時,也應(yīng)按排相關(guān)人員跟進并解決問題。總之,通過codereivew這一手段,盡可能的在提交測試之前去發(fā)現(xiàn)代碼中存在的一些實際問題,從項目經(jīng)歷中得到成長。