国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

代碼審查是軟件開發過程中最重要的環節之一。如果這項工作做得好,代碼審查能夠切實幫助我們發現 bug,普及最佳實踐并保障代碼質量。

近日,Meta 技術團隊宣布采用了幾款工具和相應流程,很大程度提高了代碼審查速率。

Meta 技術團隊將針對代碼庫做出的一組獨立變更稱為“diff”。雖然 Meta 非常重視開發效率,但每條 diff 也必須經受嚴格審查,絕無例外。代碼審查團隊深知審查周期越長,留給開發者們完成工作的時間就會越短。

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

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

為了回答這個問題,首先需要查看自己的數據。在跟蹤了一項名為“審查時間”的指標后,Meta 技術團隊發現,需要衡量的是 diff 在單一審查周期內等待審查的時長。這里只計算 diff 等待審查者操作的時間。

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

審查時間(Time In Review)指標,計算的就是圖中各藍色部分(即無意義等待部分)耗費的時間總和。

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

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

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

在速度與質量間求取平衡

然而,簡單粗暴地加快審查速度絕不是明智之舉,甚至會將審查變成毫無意義的走過場。因此需要設置一項護欄指標,防止過快審查帶來的負面后果。在這里,研究人員選擇了“注視時間”,即審查者花在查看 diff 上的總時長。查看時間過短,即代表審查者很可能是在敷衍了事。

現在已經有了核心指標“審查時間”,也有了護欄指標“注視時間”,接下來要怎么辦?

構建、試驗和迭代

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

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

試驗過程:根據對代碼審查意義和體驗設計的假設,選擇了目標指標和護欄指標。此外還制定了一套選擇不同實驗單元以實現隨機化抽樣的機制,包括用戶集群的隨機化。

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

Meta 技術研發團隊表示,關于這個概念的靈感,來自視頻流服務。由于每集視頻之間會無縫過渡,所以流媒體服務平臺上的觀看體驗總是絲滑順暢。那能不能把同樣的體驗引入代碼審查當中?通過 diff 隊列,他們建立起了類似的 diff 審查流體系,鼓勵審查者們充分利用自己的時間和精力。

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

于是乎,“下一可審查 diff”的概念由此誕生。研發團隊使用機器學習識別出審查者當前最可能想要審查的 diff,并在其完成當前代碼審查之后,立即把感興趣的下一 diff 呈現出來。通過這種方式,我們就能輕松把 diff 審查循環起來,同時避免審查者接觸到與其不相干的 diff。

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

改進審查者匹配效果

可以看到,新方案的關鍵在于為 diff 選擇適當的審查者。提交者當然希望審查者能夠更好、更快地審查自己的代碼,特別是要得熟悉相關 diff 的內容和作用。從以往的情況看,Meta 的審查者推薦器會根據一組有限數據給出匹配建議,但這往往無法適應新 diff 的需要,而且在工程師們輪換崗位后又得重新適配。

為此,研發團隊建立了新的審查者推薦系統,將工作時間感知和文件歸屬信息結合起來,這就讓有空審查 diff、擅長審查特定 diff 的審查者更可能被選中。我們重寫了建議支持模型,添加了回溯測試和自動再訓練等功能。

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

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

用 Nudgebot 解決 Diff 積壓問題

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

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

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

目前此功能已經單獨發布:

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

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

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

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據驅動
    +關注

    關注

    0

    文章

    170

    瀏覽量

    12788
  • 代碼
    +關注

    關注

    30

    文章

    4968

    瀏覽量

    73960
  • Meta
    +關注

    關注

    0

    文章

    322

    瀏覽量

    12455

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

文章出處:【微信號:AI前線,微信公眾號:AI前線】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    MySQL查詢分析與索引調優全流程

    MySQL 性能問題在生產環境中的表現通常是漸進式的:業務量增長、數據量膨脹,某天突然發現 P99 響應時間從 50ms 漲到 2s。查詢是最常見的根因,而索引設計不合理又是查詢的主要來源。
    的頭像 發表于 03-06 15:56 ?47次閱讀

    提拉槽:硅片清洗的高效與精細之道

    原理與流程預脫水機制:提拉槽通常作為純水清洗的最后環節,硅片先完全浸泡于高純度去離子水中,隨后通過機械手或吊籃以極低速度(約0.1-0.5m/min)向上提拉。此時
    的頭像 發表于 01-14 14:02 ?1790次閱讀
    <b class='flag-5'>慢</b>提拉槽:硅片清洗的高效與精細之道

    為什么我的上位機通信速度慢

    通信越快越好嗎? 通信速度往往被認為是越快越好。但對于上位機系統來說,是否同樣如此呢? 一、通信分類 在自動化系統中,通信通常可分為兩大類: 1.現場控制層與現場設備層之間的通信 這一層級主要涉及
    的頭像 發表于 12-07 14:42 ?2135次閱讀
    為什么我的上位機通信<b class='flag-5'>速度慢</b>?

    天馬微電子出席汽車座艙液晶顯示模塊團體標準審查

    近日,由中國汽車工業協會與車用智能顯示分會主辦,天馬微電子、江蘇新通達、矽力杰半導體和安徽帝顯共同協辦的“T/CAAMTB《汽車座艙液晶顯示模塊》團體標準審查會”在安徽蕪湖隆重舉行。會議匯聚了來自
    的頭像 發表于 10-16 16:26 ?808次閱讀

    rtthread studio 在編譯程序時 速度特別的,而且還經常會在編譯的時候卡在30%進度上不動,怎么解決?

    您好, 在用rtthread studio 編譯程序時,編譯的速度特別的,而且還經常會在編譯的時候卡在30%進度上不動。 嘗試將parrallel build 配置成4 或者12 , 當為12時,就會在編譯時卡在30%進度上不動了
    發表于 09-18 08:02

    MySQL查詢終極優化指南

    作為一名在生產環境摸爬滾打多年的運維工程師,我見過太多因為查詢導致的線上故障。今天分享一套經過實戰檢驗的MySQL查詢分析與索引優化方法論,幫你徹底解決數據庫性能瓶頸。
    的頭像 發表于 08-13 15:55 ?847次閱讀

    天合跟蹤獲得DNV第三方風洞測試審查報告

    近日, 天合跟蹤獲得DNV頒發的中國支架行業首張風洞實驗第三方審查報告。該風洞報告由天合跟蹤與同濟大學合作,針對開拓者1P跟蹤支架進行了全新的剛性模型測壓試驗和先進動力學分析研究,并由DNV進行獨立
    的頭像 發表于 07-08 17:35 ?938次閱讀

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

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

    河南礦用膠管測徑儀應用 避免檢測拖產線節奏

    徑,避免因檢測速度跟不上導致漏檢。人工檢測大多數是在成品抽樣檢測,檢測速度慢,容易造成產品積壓。 采用非接觸式測量技術 在線測徑儀為光學測量設備,無需接觸膠管即可進行高精度測量,避免了傳統接觸式測量可能
    發表于 04-24 16:22

    華益精點閃耀第91屆CMEF 引領病管理新時代

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

    SMT貼片前必知!PCB設計審查全攻

    一站式PCBA打樣工廠今天為大家講講PCB貼片加工廠家對PCB設計進行審查和確認需關注哪些問題?SMT貼片加工前的PCB設計審查流程。在SMT貼片加工中,PCB設計的審查和確認是確保加工質量和生產
    的頭像 發表于 04-07 10:02 ?1071次閱讀

    MCUXpresso_24.12.148/FRDM-K22F調試會話啟動速度非常,怎么解決?

    任何錯誤消息。加載速度非常。加載 Debug 會話后,調試似乎以正常的響應速度進行。 如果我構建并調試一個 NXP 示例項目,則 Debug 會話幾乎立即出現 - 只需幾秒鐘。 我在 Ubuntu 22.04 上構建。 請
    發表于 04-02 08:26

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

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

    使用iic對mpu9250進行讀取數據,讀取磁力計數據時采用的是主控iic方式,但是讀取的速度特別,為什么?

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

    在CM32M433R MCU上調用riscv_sqrt_f32()函數的計算速度比直接調用sqrtf()要,為什么?

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