如何做好Code Review?

2021-10-24 20:07:36 字數 1938 閱讀 4834

一、背景

最近隨著交易業務快速擴充套件,研發組內新專案及新成員越來越多,如何做好code review,把控研發人員開發**質量很是關鍵。

對於大部分業務團隊,談到code review就會面露哀狀:

「上線時間倒排,研發工期這麼緊,連碼**的時間都不夠了,你還要我cr?」

「上版的需求,這版就變了,**生命週期太短,爛就爛吧,反正能用就行啦」

二、丟擲問題

下面分幾個方面來分析下code review:

* code review有沒有用?

* code review中的問題如何解決?

* 如何做好code review?

三、分析問題

1、code review有沒有用?

code review 的好處不言而喻。主要讓你的**可以更好的組織搭建,有更高可讀性,且更容易維護,同時可以知識共享,相對而言,找bug並不是那麼的重要。

總結一句話,code review可以直接影響你的工程能力。

2、code review中的問題如何解決?

code review中的主要問題:

a. 編碼質量較差

原因可能是對業務不熟悉,對語言應用技巧不熟悉,也可能對公司、部門編碼規範不熟悉等等,有些問題如果沒人及時提醒糾正的話,只會造成在錯誤的道路上越走越遠。

b. 自己承擔還是指導他人?

code review是乙個學習過程,將自己的一些經驗指導給新人,從長遠來看,是在「複製」你的生產力,乙個人能力再強,也不可能包攬所有的任務,團隊協作也是研發人員需要注重培養的軟素質。

c. 主要review什麼?

編碼風格,大家約定俗成的規範準則,從新人開始一步步堅持下去;

**可讀性,**寫出來是叫別人可以讀懂的,而且是易讀的;

全面性,業務實現異常情況考慮不全面的問題,需要老工程師指導,以免造成線上故障;

不良**或架構,錯誤的**實現、功能函式抽象以及檔案組織等,都需要盡量保持整個**庫的風格一致。

3、如何做好code review?

code review機制一定是要與團隊規模和專案節奏掛鉤的。

a. code review 頻次如何控制?

研發前期需要技術方案設計評審,日常code review保證開發過程中**質量,研發完成後專案code review是為了呼應前期評審過的技術方案,確認哪些方案變更了,是由於什麼原因等等。

如:大型專案,每天code review一次;小優化需求,merge request時候code review一次即可。

tips:code review一定要盡可能前置,防止測試後改動問題造成影響。

b. code review 時間如何控制?

一次不要檢查過多**,控制在1小時以內,乙個[研究機構] 調查指出,太多資訊或者60分鐘以後,發現缺陷的能力就會降低。

c. 作者在審核前需要注釋源**

在他人評審之前,自己review一遍實現思路,說不定會有意外收穫呢。

d. 使用checklist

可能團隊內人員會犯同樣的錯誤,一遍遍重複查詢費時費力,應該整理核對checklist來縮減經常出現的錯誤的排查時間,同樣checklist也有利於問題統計和跟蹤改進結論。

e. 改進問題要及時

爭取當天問題當天解決,同時code review新問題之前,先回顧一下之前遺留問題是否修復,做到code review行之有效。

f. 培養積極的code review文化

review是團隊提高**質量的機會,也是互相學習的過程;建立接受他人評審的潛意識,我的工作產出是需要其他人review的,這種自我激勵會自然的要求自己產出更優秀的**。

四、寫在最後

作為研發工程師,首先要對自己負責的業務和**負責,這個與醫生、教師的崗位職責是一樣的。如果開發沒有標準,對應該高標準的東西一味妥協,自己的標準一降再降,到最後吃虧的還是自己。

如何做好Code Review 思考 方法和實踐

最近被要求做乙個關於code review的講演。首先要說明的是,我並不是太擅長開展code review的活動。做這個完全是因為答應了別人又不好反悔。不過在做準備的過程中還是有一些感想。關於code review我所了解到的行業中最著名的是bill gates匯報。這是微軟在軟體開發過程中的乙個重...

如何做好PL

最近事情太多,主要有三類 新專案開發,開發團隊有8個人,維護版本過tr5點,如果測試提出問題,必須保證問題單不能過夜,當天解決。網上問題,產品技術問題支援。結果,這個星期有三天晚上是1點後回家的,我在想。pl到底是怎麼樣乙個角色?是管理還是技術主導多一些?那些問題其實組員是能夠搞定的,但是我之前已經...

如何做好專案?

如何評價專案的好壞 從客戶角度 功能 按期,效益,體驗,穩定性 效能 擴充套件 按期完成功能是一定的,不然會被辭退,績效考核才是最重要的 穩定性的指標 可用性 績效考核指標 分鐘 故障分鐘 總分鐘 乙個專案的開發流程 需求 文件 原型 需求可行性 設計 技術選型 技術,測試人員測試,ui設計 ui,...