Code Review 方法總結(jié)

定義

Code Review代碼評審是指在軟件開發(fā)過程中,通過對源代碼進(jìn)行系統(tǒng)性檢查的過程贞绵。通常的目的是查找各種缺陷佛寿,包括代碼缺陷、功能實(shí)現(xiàn)問題但壮、編碼合理性冀泻、性能優(yōu)化等;保證軟件總體質(zhì)量和提高開發(fā)者自身水平蜡饵。

之前團(tuán)隊(duì)使用的分支策略弹渔,貼近 git-flow。而基于git-flow 難以進(jìn)行code review溯祸。后面采用git-flow結(jié)合gitlab-flow工作流作為分支管理策略肢专。

code review 的好處

很多舞肆。略。

code review 形式

  1. Team Review / Code Review Meeting:就是將團(tuán)隊(duì)成員都組織起來開會博杖,讓代碼Owner上去講自己代碼的實(shí)現(xiàn)和思路椿胯,其它人發(fā)表意見和進(jìn)行討論,

  2. Single Review:就是項(xiàng)目owner提交代碼之后剃根,讓reviewer在空閑的時候幫忙評審代碼哩盲,并且寫出批注,owner收到批注后狈醉,進(jìn)行修改或者回復(fù)廉油。

  • peer review:reviewer 并不是只有組長/架構(gòu)師才能做。需要所有經(jīng)驗(yàn)豐富或有專長的同學(xué)參與其中苗傅。

  • 架構(gòu)師/負(fù)責(zé)人 review

建議采用single review抒线。peer review 結(jié)合架構(gòu)師review。例如:架構(gòu)師review前渣慕,代碼提交者可視情況申請經(jīng)驗(yàn)豐富的同學(xué)做 peer review嘶炭。

image.png
  • 在feature分支merge到develop分支的時候做code review。

  • develop分支 merge 到 release時要控制合并的范圍:因?yàn)閐evelop會包含各個feature 分支合并上來的代碼逊桦。但不一定所有feature都包含在此次發(fā)布的范圍內(nèi)眨猎。

code review 實(shí)施要點(diǎn)

  1. 使用GitLab進(jìn)行Code Review就是在分支合并環(huán)節(jié)發(fā)起 Merge Request。然后Code Reviewer進(jìn)行代碼審核卫袒。

  2. Code Reviewer review 完成后將代碼合并到目標(biāo)分支。

  3. 保證必須以Merge的方式變更develop分支单匣、release分支夕凝、以及master分支。對Push以及Merge權(quán)限進(jìn)行限制

  4. IDEA插件:Gitlab projects Gitlab integration户秤。發(fā)起Merge Request請求

附:幾種分支管理策略

image.png

Git-Flow 工作流

master 和 develop 是長期分支码秉。master 分支上的代碼都是版本發(fā)布狀態(tài);develop 分支則代表最新的開發(fā)進(jìn)度鸡号。

當(dāng)需要開發(fā)某些功能時转砖,就從 develop 拉出 feature 分支進(jìn)行開發(fā),開發(fā)完成并驗(yàn)證后就可以合并回 develop 分支鲸伴。當(dāng) develop 上的代碼達(dá)到一個穩(wěn)定的狀態(tài)府蔗,可以發(fā)布版本的時候,會從 develop 合并到 release 分支進(jìn)行發(fā)布汞窗,如果驗(yàn)證有問題就在 release 分支進(jìn)行修復(fù)姓赤,修復(fù)驗(yàn)證通過后進(jìn)行正式發(fā)布,然后合并到 master 分支和 develop 分支仲吏。還有一個 hotfix 分支用來做線上的緊急 bug 修復(fù)不铆,hotfix 直接從 master 拉出分支修改蝌焚,修改驗(yàn)證完成后直接合并回 master,并同步到 develop 分支誓斥。

Git-Flow 流程非常完善只洒,但會稍微有些復(fù)雜,而且沒有圖形頁面劳坑。

GitHub 工作流

GitHub 工作流只有一個長期分支 master毕谴,而且 master 分支的代碼永遠(yuǎn)是可發(fā)布狀態(tài)。如果有新功能開發(fā)泡垃,可以從 master 分支上檢出新分支析珊,開發(fā)完成需要合并時,創(chuàng)建一個合并到 master 到 PR蔑穴,也就是 pull request忠寻。當(dāng) review 通過或者驗(yàn)證通過后,代碼合并到 master 分支存和。GitHub 工作流中 hotfix 熱修復(fù)的流程和 feature 分支完全一樣奕剃。

GitLab 工作流

GitLab 結(jié)合了前兩者的優(yōu)勢,既支持 Git-Flow 的多分支策略捐腿,也有 GitHub Flow 的一些機(jī)制纵朋,比如 Merge Request和 issue 跟蹤。GitLab工作流使用 pre-production 分支來進(jìn)行預(yù)發(fā)管理茄袖,使用 production 分支來發(fā)布版本操软。

可以限定關(guān)鍵分支如:develop、master宪祥、release 必須以Merge的方式變更聂薪。對Merge和Push的權(quán)限進(jìn)行限定。僅 Code Reviewer 具備這些分支的Push蝗羊、Merge權(quán)限藏澳。

參考:

http://szuwest.github.io/code-reviewfang-an.html
Gitlab & IDEA 插件執(zhí)行 Code Review 過程

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市耀找,隨后出現(xiàn)的幾起案子翔悠,更是在濱河造成了極大的恐慌,老刑警劉巖野芒,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蓄愁,死亡現(xiàn)場離奇詭異,居然都是意外死亡狞悲,警方通過查閱死者的電腦和手機(jī)涝登,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來效诅,“玉大人胀滚,你說我怎么就攤上這事趟济。” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長灵份。 經(jīng)常有香客問我,道長媳纬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任施掏,我火速辦了婚禮钮惠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘七芭。我一直安慰自己素挽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布狸驳。 她就那樣靜靜地躺著预明,像睡著了一般。 火紅的嫁衣襯著肌膚如雪耙箍。 梳的紋絲不亂的頭發(fā)上撰糠,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機(jī)與錄音辩昆,去河邊找鬼阅酪。 笑死,一個胖子當(dāng)著我的面吹牛汁针,可吹牛的內(nèi)容都是我干的术辐。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼扇丛,長吁一口氣:“原來是場噩夢啊……” “哼术吗!你這毒婦竟也來了尉辑?” 一聲冷哼從身側(cè)響起帆精,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎隧魄,沒想到半個月后卓练,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡购啄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年襟企,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狮含。...
    茶點(diǎn)故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡顽悼,死狀恐怖曼振,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蔚龙,我是刑警寧澤冰评,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站木羹,受9級特大地震影響甲雅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜坑填,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一抛人、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧脐瑰,春花似錦妖枚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至忌穿,卻和暖如春抒寂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背掠剑。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工屈芜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人朴译。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓井佑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親眠寿。 傳聞我的和親對象是個殘疾皇子躬翁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評論 2 355