91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么diff審查的速度總是那么慢?

jf_WZTOguxH ? 來源:AI前線 ? 作者:AI前線 ? 2022-11-18 14:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

代碼審查是軟件開發(fā)過程中最重要的環(huán)節(jié)之一。如果這項(xiàng)工作做得好,代碼審查能夠切實(shí)幫助我們發(fā)現(xiàn) bug,普及最佳實(shí)踐并保障代碼質(zhì)量。

近日,Meta 技術(shù)團(tuán)隊(duì)宣布采用了幾款工具和相應(yīng)流程,很大程度提高了代碼審查速率。

Meta 技術(shù)團(tuán)隊(duì)將針對(duì)代碼庫做出的一組獨(dú)立變更稱為“diff”。雖然 Meta 非常重視開發(fā)效率,但每條 diff 也必須經(jīng)受嚴(yán)格審查,絕無例外。代碼審查團(tuán)隊(duì)深知審查周期越長,留給開發(fā)者們完成工作的時(shí)間就會(huì)越短。

為此,Meta 技術(shù)團(tuán)隊(duì)研究了多項(xiàng)指標(biāo),希望更多了解哪些代碼審查瓶頸最令開發(fā)者們感到不滿,并積極利用這些結(jié)論探尋在不犧牲審查質(zhì)量的前提下加快審查速度的辦法。通過研究發(fā)現(xiàn),緩慢的 diff 審查速度跟工程師們的不滿情緒間存在相關(guān)性。另外,新研發(fā)的工具能夠在審查周期的各個(gè)關(guān)鍵節(jié)點(diǎn)向相應(yīng)審查人員展示 diff,由此顯著改善審查體驗(yàn)。

為什么 diff 審查的速度總是那么慢?

為了回答這個(gè)問題,首先需要查看自己的數(shù)據(jù)。在跟蹤了一項(xiàng)名為“審查時(shí)間”的指標(biāo)后,Meta 技術(shù)團(tuán)隊(duì)發(fā)現(xiàn),需要衡量的是 diff 在單一審查周期內(nèi)等待審查的時(shí)長。這里只計(jì)算 diff 等待審查者操作的時(shí)間。

f2d3e92e-6702-11ed-8abf-dac502259ad0.png

審查時(shí)間(Time In Review)指標(biāo),計(jì)算的就是圖中各藍(lán)色部分(即無意義等待部分)耗費(fèi)的時(shí)間總和。

最終的發(fā)現(xiàn)令人驚訝。回顧 2021 年初的數(shù)據(jù),研發(fā)人員發(fā)現(xiàn) diff 審查時(shí)間的中位數(shù)(第 50 百分位)只有幾個(gè)小時(shí),這樣的結(jié)果還算不錯(cuò)。但如果把目光投向第 75 百分位(即最慢的那四分之一審查),就會(huì)發(fā)現(xiàn)diff 的審查時(shí)間延長到了一整天。

研發(fā)人員分析了審查時(shí)間跟用戶滿意度(通過全公司范圍內(nèi)的量化調(diào)查)之間的相關(guān)性。結(jié)果非常明確:速度最慢的那 25% diff 審查,才是決定人們實(shí)際體驗(yàn)的核心;這部分耗時(shí)越長,大家對(duì)代碼審查過程的滿意度就越低。于是也就得出了最值得關(guān)注的改進(jìn)指標(biāo):第 75 百分位(P75)審查時(shí)間。

縮短審查時(shí)間不單能讓人們對(duì)整個(gè)代碼審查過程的滿意度更高,也會(huì)提高每一位 Meta 工程師的工作效率。縮短 diff 審查時(shí)間,意味著工程師耗費(fèi)在審查上的時(shí)間將大大減少、提升工作效率、改善審查體驗(yàn)。

在速度與質(zhì)量間求取平衡

然而,簡單粗暴地加快審查速度絕不是明智之舉,甚至?xí)彶樽兂珊翢o意義的走過場(chǎng)。因此需要設(shè)置一項(xiàng)護(hù)欄指標(biāo),防止過快審查帶來的負(fù)面后果。在這里,研究人員選擇了“注視時(shí)間”,即審查者花在查看 diff 上的總時(shí)長。查看時(shí)間過短,即代表審查者很可能是在敷衍了事。

現(xiàn)在已經(jīng)有了核心指標(biāo)“審查時(shí)間”,也有了護(hù)欄指標(biāo)“注視時(shí)間”,接下來要怎么辦?

構(gòu)建、試驗(yàn)和迭代

在 Meta,幾乎每個(gè)產(chǎn)品團(tuán)隊(duì)都會(huì)使用試驗(yàn)加數(shù)據(jù)驅(qū)動(dòng)的流程推進(jìn)功能發(fā)布和迭代。但對(duì)于這些內(nèi)部輔助團(tuán)隊(duì),這樣的流程仍然比較新鮮。因此人們需要克服一系列產(chǎn)品團(tuán)隊(duì)根本不需要考慮的挑戰(zhàn)(樣本量、隨機(jī)化、網(wǎng)絡(luò)效應(yīng)等)。研發(fā)人員通過運(yùn)行網(wǎng)絡(luò)實(shí)驗(yàn)積累起數(shù)據(jù)基準(zhǔn),并利用技術(shù)減少方差、增加樣本量。事實(shí)證明,這些努力都是值得的——通過奠定堅(jiān)實(shí)的試驗(yàn)基礎(chǔ),使得研發(fā)團(tuán)隊(duì)最終拿出了具有積極影響且行之有效的新一代代碼審查方案。

f2e6c1c0-6702-11ed-8abf-dac502259ad0.png

試驗(yàn)過程:根據(jù)對(duì)代碼審查意義和體驗(yàn)設(shè)計(jì)的假設(shè),選擇了目標(biāo)指標(biāo)和護(hù)欄指標(biāo)。此外還制定了一套選擇不同實(shí)驗(yàn)單元以實(shí)現(xiàn)隨機(jī)化抽樣的機(jī)制,包括用戶集群的隨機(jī)化。

建立“下一可審查 diff”的概念

Meta 技術(shù)研發(fā)團(tuán)隊(duì)表示,關(guān)于這個(gè)概念的靈感,來自視頻流服務(wù)。由于每集視頻之間會(huì)無縫過渡,所以流媒體服務(wù)平臺(tái)上的觀看體驗(yàn)總是絲滑順暢。那能不能把同樣的體驗(yàn)引入代碼審查當(dāng)中?通過 diff 隊(duì)列,他們建立起了類似的 diff 審查流體系,鼓勵(lì)審查者們充分利用自己的時(shí)間和精力。

f31b3996-6702-11ed-8abf-dac502259ad0.png

于是乎,“下一可審查 diff”的概念由此誕生。研發(fā)團(tuán)隊(duì)使用機(jī)器學(xué)習(xí)識(shí)別出審查者當(dāng)前最可能想要審查的 diff,并在其完成當(dāng)前代碼審查之后,立即把感興趣的下一 diff 呈現(xiàn)出來。通過這種方式,我們就能輕松把 diff 審查循環(huán)起來,同時(shí)避免審查者接觸到與其不相干的 diff。

新方案上線之后,研發(fā)團(tuán)隊(duì)發(fā)現(xiàn),日均審查操作(包括 diff 接納量、提交量等)總體增長了 17%,而使用此流程的工程師們執(zhí)行的審查操作比未使用的審查員多出 44%!

改進(jìn)審查者匹配效果

可以看到,新方案的關(guān)鍵在于為 diff 選擇適當(dāng)?shù)膶彶檎摺L峤徽弋?dāng)然希望審查者能夠更好、更快地審查自己的代碼,特別是要得熟悉相關(guān) diff 的內(nèi)容和作用。從以往的情況看,Meta 的審查者推薦器會(huì)根據(jù)一組有限數(shù)據(jù)給出匹配建議,但這往往無法適應(yīng)新 diff 的需要,而且在工程師們輪換崗位后又得重新適配。

為此,研發(fā)團(tuán)隊(duì)建立了新的審查者推薦系統(tǒng),將工作時(shí)間感知和文件歸屬信息結(jié)合起來,這就讓有空審查 diff、擅長審查特定 diff 的審查者更可能被選中。我們重寫了建議支持模型,添加了回溯測(cè)試和自動(dòng)再訓(xùn)練等功能。

f32b41f6-6702-11ed-8abf-dac502259ad0.png

結(jié)果就是,一天之內(nèi) diff 審查量增加了 1.5%,而且前三條推薦的準(zhǔn)確率(即實(shí)際審查者來自前三條推薦)的概率也從不到 60% 增長至近 75%。除此之外,新模型還將推薦速度(第 90 百分位延遲)提升了 14 倍!

用 Nudgebot 解決 Diff 積壓問題

我們知道工程師們最不喜歡的就是 diff 積壓問題。這不僅讓人不爽,而且審查速度過慢還會(huì)令代碼過時(shí),導(dǎo)致開發(fā)者在不同上下文間來回切換、影響整體生產(chǎn)力。為了解決這個(gè)問題,Meta 研發(fā)團(tuán)隊(duì)構(gòu)建了 Nudgebot,其靈感來自微軟所做的相關(guān)研究。

對(duì)于需要額外長時(shí)間審查的 diff,Nudgebot 會(huì)首先確定最適合的審查者子集,然后向他們發(fā)送一條聊天 ping,其中包含 diff 的部分上下文和快速跳轉(zhuǎn)至審查流程的操作選項(xiàng)。

Nudgebnot 試驗(yàn)也取得了不錯(cuò)的效果。所有 diff 的平均審查時(shí)間縮短了 7%(不含周末時(shí)段),審查周期超過 3 天的 diff 比例也下降了 12%。

目前此功能已經(jīng)單獨(dú)發(fā)布:

https://users.encs.concordia.ca/~pcr/paper/NudgeBot2022FSE-preprint.pdf

f339cdd4-6702-11ed-8abf-dac502259ad0.png

這里就是審查者在屏幕上看到的積壓 diff 通知,下方還有“稍后提醒我”按鈕。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)驅(qū)動(dòng)

    關(guān)注

    0

    文章

    140

    瀏覽量

    12579
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70671
  • Meta
    +關(guān)注

    關(guān)注

    0

    文章

    303

    瀏覽量

    11857

原文標(biāo)題:Meta 提出代碼審查新方案:杜絕代碼 Bug,日均代碼審查總量增長 17%

文章出處:【微信號(hào):AI前線,微信公眾號(hào):AI前線】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    科普|公司的Wi-Fi,為什么這么?

    好了,也搞不定。這是為什么呢?公司的Wi-Fi,到底有什么“苦衷”?█Wi-Fi速率為什么這么?Wi-Fi速度慢,其實(shí)說白了,就兩種原因:一是北向的出口帶寬小。水
    的頭像 發(fā)表于 06-20 06:06 ?432次閱讀
    科普|公司的Wi-Fi,為什么這么<b class='flag-5'>慢</b>?

    華益精點(diǎn)閃耀第91屆CMEF 引領(lǐng)病管理新時(shí)代

    2025年4月11日,第91屆中國國際醫(yī)療器械博覽會(huì)(CMEF)圓滿落下帷幕。在這場(chǎng)全球醫(yī)療行業(yè)的頂級(jí)盛會(huì)上,華益精點(diǎn)以“病管理全場(chǎng)景解決方案”為主題盛大登場(chǎng),引發(fā)業(yè)界廣泛關(guān)注與熱議。 互聯(lián)互通
    的頭像 發(fā)表于 04-17 16:20 ?244次閱讀
    華益精點(diǎn)閃耀第91屆CMEF  引領(lǐng)<b class='flag-5'>慢</b>病管理新時(shí)代

    SMT貼片前必知!PCB設(shè)計(jì)審查全攻

    一站式PCBA打樣工廠今天為大家講講PCB貼片加工廠家對(duì)PCB設(shè)計(jì)進(jìn)行審查和確認(rèn)需關(guān)注哪些問題?SMT貼片加工前的PCB設(shè)計(jì)審查流程。在SMT貼片加工中,PCB設(shè)計(jì)的審查和確認(rèn)是確保加工質(zhì)量和生產(chǎn)
    的頭像 發(fā)表于 04-07 10:02 ?309次閱讀

    MCUXpresso_24.12.148/FRDM-K22F調(diào)試會(huì)話啟動(dòng)速度非常,怎么解決?

    任何錯(cuò)誤消息。加載速度非常。加載 Debug 會(huì)話后,調(diào)試似乎以正常的響應(yīng)速度進(jìn)行。 如果我構(gòu)建并調(diào)試一個(gè) NXP 示例項(xiàng)目,則 Debug 會(huì)話幾乎立即出現(xiàn) - 只需幾秒鐘。 我在 Ubuntu 22.04 上構(gòu)建。 請(qǐng)
    發(fā)表于 04-02 08:26

    使用Diff-Amp Calculator軟件計(jì)算時(shí)得出的反饋電阻RF,再根據(jù)RF計(jì)算增益和軟件計(jì)算的增益相差較大,怎么解決?

    使用Diff-Amp Calculator 軟件計(jì)算時(shí)得出的反饋電阻RF,再根據(jù)RF計(jì)算增益和軟件計(jì)算的增益相差較大。求各位工程師解答。
    發(fā)表于 03-24 06:56

    使用iic對(duì)mpu9250進(jìn)行讀取數(shù)據(jù),讀取磁力計(jì)數(shù)據(jù)時(shí)采用的是主控iic方式,但是讀取的速度特別,為什么?

    使用iic對(duì)mpu9250進(jìn)行讀取數(shù)據(jù),讀取磁力計(jì)數(shù)據(jù)時(shí)采用的是主控iic方式,但是讀取的速度特別,幾秒一次,網(wǎng)上說磁力計(jì)數(shù)據(jù)輸出的速率最快是100hz,幾秒一次也太慢了;另外在初始化函數(shù)中開啟了延時(shí),但是一次讀取6個(gè)字節(jié)的數(shù)據(jù),只能讀到前兩個(gè)字節(jié),后四個(gè)字節(jié)全為0,請(qǐng)
    發(fā)表于 03-14 07:40

    在CM32M433R MCU上調(diào)用riscv_sqrt_f32()函數(shù)的計(jì)算速度比直接調(diào)用sqrtf()要,為什么?

    在CM32M433R MCU上調(diào)用riscv_sqrt_f32()函數(shù)的計(jì)算速度比直接調(diào)用sqrtf()要, 計(jì)算一次riscv_sqrt_f32大概54 cycles;sqrtf()大概29 cycles,FPU宏已打開,求助是什么問題。
    發(fā)表于 03-07 14:18

    為什么PMOS關(guān)斷時(shí)這么?

    請(qǐng)大佬指點(diǎn)一下為什么PMOS關(guān)斷時(shí)這么?
    發(fā)表于 03-04 17:16

    OpenAI嘗試減少對(duì)ChatGPT的審查

    ,這一政策的實(shí)施將使得ChatGPT能夠回答更多的問題,提供更多的視角。在過去,由于審查機(jī)制的存在,ChatGPT對(duì)于一些敏感或爭(zhēng)議性話題往往保持沉默,不愿過多涉及。然而,隨著新政策的推行,ChatGPT將逐漸減少對(duì)這類話題的回避,以更加開放和包容的態(tài)度面對(duì)
    的頭像 發(fā)表于 02-17 14:42 ?1661次閱讀

    調(diào)試ADS1299 EEG開發(fā)板,讀取寄存器的速度特別,為什么?

    大家好,我最近在用ads1299作開發(fā),原來實(shí)驗(yàn)室有留下一套ADS1299 EEG 開發(fā)板,現(xiàn)在拿來調(diào)試,但是發(fā)現(xiàn)讀取寄存器的速度特別,讀一次數(shù)據(jù)要十幾分鐘,而且通過GUI看不到波形,讀取
    發(fā)表于 12-25 07:37

    Altium 365解決方案解鎖高效設(shè)計(jì)審查之道

    大量的工程設(shè)計(jì)審查:無論是在項(xiàng)目的前端還是在制造的后端,每一個(gè)環(huán)節(jié)都需要反復(fù)核查。
    的頭像 發(fā)表于 12-20 15:56 ?872次閱讀
    Altium 365解決方案解鎖高效設(shè)計(jì)<b class='flag-5'>審查</b>之道

    ADS1258 DIFF0在檢測(cè)500uV及以下電壓時(shí)產(chǎn)生嚴(yán)重失真的原因?怎么解決?

    ADS1258 DIFF0在檢測(cè)500uV及以下電壓時(shí)產(chǎn)生嚴(yán)重失真。
    發(fā)表于 11-22 09:32

    ADS1258設(shè)置BYPASS = 0 , DIFF0通道offset較大是怎么回事?

    自己做的測(cè)試板,MUXOUTP/MUXPUTN 后面無添加任何器件,直接連接至ADCINP/ADCINN,AVDD= 5V, DVDD = 3.3V, BYPASS = 0 時(shí),測(cè)量DIFF
    發(fā)表于 11-19 08:27

    TLV320AIC33模擬輸入端口電壓上升怎么解決?

    可以說話出去。速度有點(diǎn),之前設(shè)計(jì)的產(chǎn)品我有過對(duì)比,一般都是在初始化完成后立即可以到達(dá)1.3V。 搞了兩個(gè)星期沒有任何進(jìn)展,求幫助。
    發(fā)表于 10-12 08:34

    在CM32M433R MCU上調(diào)用riscv_sqrt_f32()函數(shù)的計(jì)算速度比直接調(diào)用sqrtf()要,為什么?

    在CM32M433R MCU上調(diào)用riscv_sqrt_f32()函數(shù)的計(jì)算速度比直接調(diào)用sqrtf()要, 計(jì)算一次riscv_sqrt_f32大概54 cycles;sqrtf()大概29 cycles,FPU宏已打開,求助是什么問題。
    發(fā)表于 07-24 06:12
    主站蜘蛛池模板: 久久久免费观看 | 韩漫免费网站无遮挡羞羞漫画 | 色偷偷免费视频 | 精品一区二区国语对白 | 在线观看二区三区午夜 | 欧美成人精品久久精品 | 九九热在线免费观看 | 啊用力太猛了啊好深视频免费 | 亚洲无色 | 午夜日韩在线 | 婷婷激情五月 | 综合婷婷 | 国产大片免费观看中文字幕 | aaaaaa精品视频在线观看 | h在线国产| 亚洲一区中文字幕在线观看 | 天天干天天噜 | 国模一区二区三区私啪啪 | 思思久99久女女精品 | 男人天堂色男人 | 免费性网站 | 一区二区三区四区五区 | 亚洲视频 欧美视频 | 男啪女色黄无遮挡免费视频 | 婷婷六月激情 | 亚洲人免费视频 | 中文三 级 黄 色 片 | 日本亚洲高清乱码中文在线观看 | 午夜欧美成人久久久久久 | 天天澡天天摸天天添视频 | 久久综合九色欧美综合狠狠 | 深夜国产成人福利在线观看女同 | 日本三级在线观看免费 | 手机看片欧美日韩 | 免费观看视频 | 久久婷婷人人澡人人爱91 | 亚洲小说区图片区另类春色 | 在线午夜 | 黄色a三级免费看 | 97色婷婷成人综合在线观看 | 国产中文字幕一区 |