自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

團(tuán)隊(duì)的Code Review實(shí)踐

原創(chuàng) 精選
開發(fā)
今天我們總結(jié)了一種比較高效的 Code Review 方案,并帶來了一個(gè)比較好用的工具。下面來和大家分享一下我們團(tuán)隊(duì) Code Review 實(shí)踐的歷程。

作者 | 蓋邁達(dá)

高效地進(jìn)行 Code Review 一直是我們想要做的事情,如何持續(xù)保持高效 Review 也是我們?nèi)粘i_發(fā)中所亟需解決的問題。 

在疫情爆發(fā)之前,團(tuán)隊(duì)大多是線下一起辦公。大家會(huì)聚在一起 Code Review,把討論出的反饋記錄在便利貼并貼在白板上。而當(dāng)遠(yuǎn)程、線上的同事越來越多后,我們選擇將 Code Review 的反饋記錄在 Trello 等電子看板上。 

今天我們總結(jié)了一種比較高效的 Code Review 方案,并帶來了一個(gè)比較好用的工具。下面來和大家分享一下我們團(tuán)隊(duì) Code Review 實(shí)踐的歷程。

Code Review的好處

一直以來,人們都說 Code Reivew 作為敏捷開發(fā)中重要的一環(huán),實(shí)踐 Code Review 有很多益處,那么到底 Code Review 有什么益處呢? 到底是因?yàn)槭裁茨ЯΓ覀冞@么篤定每天去做 Code Review?

我們認(rèn)真地思考了 Code Review 的益處,認(rèn)為以下幾點(diǎn)在整個(gè)敏捷開發(fā)流程中起到了至關(guān)重要的作用。

互相學(xué)習(xí),知識(shí)共享

我們無(wú)法保證項(xiàng)目中每個(gè)人都擁有相同的知識(shí)儲(chǔ)備,而且對(duì)于同一個(gè)問題,不同的人有不同的解決方案。通過 Code Review 我們可以快速地、有重點(diǎn)地將自己的知識(shí)傳遞給其他人。其他人也可以將代碼上下文、知識(shí)以及更好的解決方案提供給我們,讓我們做出更優(yōu)的實(shí)現(xiàn)。

Code Review 可以讓業(yè)務(wù)上下文在團(tuán)隊(duì)中共享。日常工作中,開發(fā)人員只會(huì)對(duì)自己負(fù)責(zé)的這塊業(yè)務(wù)比較熟悉。通過 Code Review 的方式,我們可以快速了解到其他業(yè)務(wù)上下文,更好地了解業(yè)務(wù)知識(shí),讓每位同學(xué)對(duì)系統(tǒng)都有更全面的認(rèn)識(shí)。

統(tǒng)一風(fēng)格,提高代碼質(zhì)量

團(tuán)隊(duì)一般會(huì)有統(tǒng)一的代碼規(guī)范。有些規(guī)范可以借助工具掃描來實(shí)現(xiàn)統(tǒng)一,工具掃描不到的就要靠 Code Review 來統(tǒng)一規(guī)范。

莎士比亞說過:“一千個(gè)人眼里有一千個(gè)哈姆雷特”,針對(duì)同一段代碼可能多種實(shí)現(xiàn)都是可行的。如果沒有統(tǒng)一的風(fēng)格,不便于后續(xù)對(duì)代碼的維護(hù)。通過 Code Review 的方式,我們可以在團(tuán)隊(duì)內(nèi)達(dá)成共識(shí),形成統(tǒng)一的代碼規(guī)范,為后續(xù)開發(fā)提供標(biāo)準(zhǔn),讓代碼看起來是同一個(gè)人寫的。

盡早暴露問題,降低修復(fù)成本

代碼開發(fā)過程中,我們很容易陷入到自己所預(yù)定的 Happy Path 中,反復(fù)驗(yàn)證卻無(wú)法發(fā)現(xiàn)問題。通過 Code Review 我們可以借助他人的視角來審查自己的代碼。是復(fù)制的時(shí)候變量名忘記了修改,還是忘記了測(cè)試異常情況,或是理解錯(cuò)業(yè)務(wù)含義等等。代碼從寫完到 Review 的時(shí)間間隔越短,解決問題的成本越低。和測(cè)試左移類似,Code Review 也可以將問題左移,從而盡早暴露,盡早修復(fù)。

我們團(tuán)隊(duì)的 Code Review 實(shí)踐經(jīng)歷

談了 Code Review 這么多好處,那么如何實(shí)踐 Code Review 呢?下面我們將自己團(tuán)隊(duì) Code Review 的經(jīng)驗(yàn)分享出來,與大家共同思考 Code Review 的最佳實(shí)踐:

團(tuán)隊(duì)最初采用的 Code Review 方式是,每位開發(fā)分別講解自己的代碼。這種方式的好處是同一個(gè)功能的代碼能夠集中講解。但實(shí)施一段時(shí)間后發(fā)現(xiàn)超時(shí)嚴(yán)重,主要原因如下:

  • 講代碼的節(jié)奏不好把控。有人講得慢,導(dǎo)致嚴(yán)重超時(shí)。
  • 遠(yuǎn)程辦公,不同講解人切換成本高??赡軙?huì)遇到屏幕共享、聲音等設(shè)備問題。

由此引發(fā)下面的問題:

  • 每天只能 review 2、3個(gè)人的代碼
  • 有的開發(fā)人員不夠主動(dòng),很久才會(huì)輪到TA
  • Review 的代碼有遺漏

為了解決上面的問題,我們將 Code Review 改為如下形式:

  • 每天一位主持人帶團(tuán)隊(duì) Code Review
  • 選擇當(dāng)天所有的提交記錄,一起 Review
  • 主持人驅(qū)動(dòng) Code Review,做簡(jiǎn)單講解
  • 復(fù)雜代碼,提交人講解
  • 主持人通過工具記錄 Code Review 的問題

這種方式主持人把控節(jié)奏,并且沒有了切換成本,大大加快了 Code Review 的速度。而且每天每個(gè)人的提交都能被 review 到。此外,借助 Code Review 問題記錄工具,效率大幅提升。

我們認(rèn)為通過主持人驅(qū)動(dòng)的方式能夠更加高效地進(jìn)行 Code Review,所以將其采納為我們團(tuán)隊(duì)的 Code Review 最佳實(shí)踐。

但 Code Review 中手動(dòng)記錄問題的過程非常煩瑣:發(fā)現(xiàn)問題 -> 切換Trello -> 手動(dòng)建卡 -> 手動(dòng)記錄問題代碼的位置。在此期間,我們開發(fā)了一款基于 JetBrains 平臺(tái) (比如 Intellij IDEA、WebStorm) 的 Code Review 插件(在IDE的插件市場(chǎng)搜索 Thoughtworks Code Review Tools 即可體驗(yàn))。我們?cè)诤笪闹袑?huì)詳細(xì)介紹此插件。

Thoughtworks Code Review Tools 介紹

這個(gè) Code Review 工具可以幫我們:

  • 創(chuàng)建 Code Review 反饋 卡片并指定 owner
  • 卡片會(huì)自動(dòng)記錄代碼位置
  • 添加反饋卡片的類型(標(biāo)簽)
  • 增加卡片截止時(shí)間
  • 支持 JetBrains 下的所有 IDE
  • 支持問題分類,方便利用 Trello board 儀表盤統(tǒng)計(jì)

安裝及配置

(1) 準(zhǔn)備電子看板

插件需要配合 trello(在線看板管理工具) 使用。我們需要先注冊(cè)trello,并新建 Code Review 看板。

(2) 安裝插件

在 IDEA 插件市場(chǎng)搜索 Thoughtworks code review tools 并進(jìn)行安裝

Github:??https://github.com/MTWGA/thoughtworks-code-review-tools??

圖片

下載頁(yè)面

(3) 配置插件

進(jìn)入偏好設(shè)置 -> TW Code Review Tools 菜單進(jìn)行配置插件信息

Trello Token 申請(qǐng)地址:https://trello.com/app-key

圖片

配置頁(yè)面

Trello Board 信息從Trello Board 地址欄可以找到,如下圖

圖片

修改完成后可以直接點(diǎn)擊 “Test Connection” 進(jìn)行測(cè)試 或者直接點(diǎn)擊右下角 Apply 進(jìn)行保存配置

記錄反饋

在 IDE 中選擇相應(yīng)的代碼,而后使用快捷鍵 command+option+i 呼出 “code review feedback” 提示框。首先輸入或者選擇人名,按 Tab鍵切換輸入框,依次輸入類型、反饋。最后按 Enter 鍵提交。

圖片

Code review Feedback 頁(yè)面

提交成功后就有相應(yīng)的提交成功的提示信息,如下圖

圖片

提交成功信息

我們也可以在 Trello上查看到信息,如下圖:

圖片

Trello 看板圖片

查看 Code Review 狀況

在 Trello 的 Code Review 看板上點(diǎn)擊標(biāo)題左側(cè)的“看板”,轉(zhuǎn)換視圖到儀表盤即可查看統(tǒng)計(jì)的信息。具體操作如下圖:

圖片

轉(zhuǎn)換視圖

圖片

按照標(biāo)簽選擇,查看code review分類信息

至此,Code Review 工具的配置及使用介紹完成。

Code Review 插件可以幫助我們快速記錄 Code Review 的反饋信息(代碼位置、反饋類型、截止時(shí)間,涉及的人員)。這些信息可以幫助開發(fā)者精確找到需要優(yōu)化的代碼位置以及優(yōu)化建議,方便開發(fā)者更快速、準(zhǔn)確地優(yōu)化代碼。

在開展Code Review一段時(shí)間之后,逐漸積累起了一定量的數(shù)據(jù)。此時(shí)我們可以通過統(tǒng)計(jì)工具分析數(shù)據(jù)。比如按照問題類型進(jìn)行統(tǒng)計(jì),對(duì)于出現(xiàn)次數(shù)多的問題分類,可以針對(duì)性展開培訓(xùn),提升團(tuán)隊(duì)成員技能。

培訓(xùn)完成后,我們可以根據(jù)新一輪統(tǒng)計(jì)結(jié)果分析培訓(xùn)效果,觀察團(tuán)隊(duì)是否確實(shí)得到了提升,從而形成閉環(huán)。

總結(jié)

Code Review 的好處雖然被廣泛認(rèn)可,但想做好 Code Review 并不容易。首先團(tuán)隊(duì)需要對(duì)開展 Code Review 達(dá)成共識(shí),然后針對(duì)自己團(tuán)隊(duì)的特性,采用相匹配的實(shí)踐方式。關(guān)于工具,可以嘗試文中提到的 Code Review 插件以及電子看板。在提升自動(dòng)化程度的同時(shí),積累 Code Review 數(shù)據(jù),指導(dǎo)團(tuán)隊(duì)針對(duì)性地提升技能。

使用插件過程中有任何問題或建議,請(qǐng)聯(lián)系插件開發(fā)團(tuán)隊(duì):

LiHui(??hui.li@thoughtworks.com??)

PengJie(??jie.peng@thoughtworks.com??)

GeMaida(??maida.ge@thoughtworks.com??)

LiYiming(??yiming.li@thoughtworks.com??)

?LiQiang(????qiangli@thoughtworks.com???)

原文鏈接:??團(tuán)隊(duì)的Code Review實(shí)踐 (qq.com)??

責(zé)任編輯:趙寧寧 來源: 51CTO
相關(guān)推薦

2020-05-27 11:25:48

開發(fā)技能代碼

2018-08-16 15:11:47

Code ReviewPPT代碼

2012-07-05 09:45:02

代碼審查

2015-11-17 16:11:07

Code Review

2013-10-24 09:43:58

代碼代碼審查

2017-07-20 13:11:46

Code ReviewPR評(píng)審

2012-09-03 13:41:50

Code Review

2021-04-25 09:19:22

騰訊Code Reviewleader

2009-08-05 09:59:40

Code Review代碼審查工具

2021-08-09 06:57:41

CodeReview流程

2015-04-15 09:44:58

CodeReview程序員

2014-04-15 13:16:00

Code Review

2022-06-23 09:57:01

code-revie前端代碼

2020-06-19 10:17:11

Code ReviewKPI代碼

2017-09-13 16:46:38

敏捷站會(huì)團(tuán)隊(duì)

2019-10-28 08:44:29

Code Review代碼團(tuán)隊(duì)

2020-12-15 10:24:05

2020-02-07 11:50:24

代碼開發(fā)工具

2021-08-26 14:26:25

Java代碼集合

2024-05-24 14:04:04

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)