在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

微軟是如何確保代碼質量的呢?

電子工程師 ? 來源:yxw ? 2019-05-29 14:08 ? 次閱讀

全球最大的軟件公司之一微軟擁有約140,000名員工,其中大約44%,即超過60,000名員工,是工程師。

Office、Visual Studio或Windows等幾種產品,都是由數千名同時在同一代碼庫上工作的工程師開發的。確保由不同子團隊開發的代碼完美地協同工作是一件非常重要的任務。

那么你想過么,如此大的工程師規模下,微軟是如何確保代碼質量的呢?

微軟的法寶在于:完整的代碼評審機制!

微軟代碼評審是一種被廣泛采用的工程實踐。成千上萬的工程師認為這是一個偉大的最佳實踐。大多數高績效團隊花費大量時間進行代碼評審。

那么,微軟的代碼評審究竟是一種怎樣的機制呢?今天,文摘菌就帶你來一探究竟。

調研微軟的代碼評審

在微軟代碼評審的大規模研究中,我們采訪、觀察并調查了900多名開發人員。

我們的目的是了解如何在微軟完成代碼評審。我們想知道,在進行代碼評審的時候,開發人員面臨哪些陷阱,以及他們為克服這些挑戰而開發的最佳實踐。

您可以從微軟的代碼評審實踐中學到什么?

大多數經驗教訓對于小型或大型團隊組織都很有價值。如果您的團隊尚未進行代碼評審,我會向您展示該實踐的好處。如果您的團隊已經有了代碼評審機制,您可以將您的實踐與微軟的代碼評審實踐進行比較。

微軟工程師多久進行一次代碼審查?

在這項研究中,36%的開發人員表示他們每天進行多次代碼評審。另有39%的開發人員表示,他們每天至少進行一次代碼評審。 12%的人每周多次進行代碼評審,只有13%的人表示過去一周他們沒有進行代碼評審。

這意味著,微軟的開發人員將大量時間花在代碼評審上。因此,確保有效使用這段時間非常重要。

代碼評審提供哪些好處?

代碼評審的好處

代碼評審最重要的好處是,提高代碼質量并找到代碼中的缺陷,另一個重要好處是知識轉移。

知識轉移意味著,審核彼此代碼的團隊成員熟悉代碼庫的大部分內容。但是,這也意味著代碼評審最好在團隊內部實施。另一個優點是,新的團隊成員和初級開發人員可以在審閱或獲得反饋的同時學習和提高他們的編碼技能。

如果開發人員在代碼評審期間討論替代解決方案,它不僅可以改善代碼庫,還可以為所有相關人員提供學習機會。因此,學習、指導和自我改進是代碼評審之所以被認為是微軟的一種有益實踐的主要原因。

開發人員通常如何進行代碼評審?

代碼審查可以通過多種方式執行。有時,可以很不正式, 比如一位開發人員走到另一位開發人員的桌邊一起看一些代碼。其他時候,團隊一起審核代碼。但是,您在微軟的代碼審查中遇到的最可能的情況是,代碼評審是在借助工具的幫助下完成的。

代碼評審的工具有很多種。在微軟,團隊可以自由選擇他們的工具。 至2016年,89%的開發人員表示使用CodeFlow代碼評審工具。稍后我將解釋更多有關此代碼評審工具的信息。從那時起,隨著Git的興起,工具領域發生了變化。

現在,讓我們考慮一個典型的代碼評審案例: 微軟的開發人員Rose剛剛完成了一個功能,現在想要得到她同行的反饋。

Rose如何在微軟開始代碼審查?

Rose首先要為代碼評審做準備。這一步包括打開代碼評審工具,允許她預覽代碼更改。代碼評審工具可以執行差異化對比任務,幫助羅斯確切了解她做了哪些更改。

在仔細審查了這些變化之后,她標記了一些備注,告訴評審人她做了什么以及為什么這樣做。備注說明有助于審閱者了解代碼更改的目的和動機。至此,代碼已準備好可以發送給審閱者了。

Rose如何選擇合適的代碼審閱者?

許多經驗豐富的開發人員都知道應該選誰作為代碼審閱者。然而,對于團隊中的新人或新的工作領域,選擇可能會更棘手。如果Rose不知道她應該添加誰,她會查看團隊規定或詢問她的同事。她還可以使用代碼評審工具的推薦功能,該工具可以根據代碼庫的經驗和知識幫助選擇審閱者。

誰是相關審閱者?

Rose選擇她認為可以為這段代碼貢獻知識的審閱者。審閱者通常是其他開發人員,但也可以包括其他利益相關者,例如開發人員工程師,UI專家或經理。一些評審員被選是基于他們的專業知識,其他評審員被選是為了讓他們能隨了解即將發生的變化。

代碼評審的一般步驟

Rose要求她的同行反饋

一旦選中每個人,Rose就會發出代碼評審。代碼評審工具會自動發送創建評審的通知到每個人。通知對象不僅包括所有審閱者,也會包括其他人員,例如相關團隊的經理或產品經理。這些通知允許他們的信息保持同步,即使他們不需要執行評審。

接受反饋是個迭代過程

Rose的同事們有時間就會審查代碼。每個審查者都能評注代碼,完事后把代碼發回Rose,Rose可以據此修改代碼。

審查者通常關注的點包括:代碼有bug嗎?代碼結構有問題嗎?代碼有拼寫錯誤、少個冒號之類的小毛病嗎?不是所有的評注都重要,但是有幾個小技巧可用來提升代碼評注。

Rose準備新版本的代碼

Rose根據評注修改代碼。如果有的地方弄錯了或有爭議,Rose可能直接去跟審查者面談,或者通過審查工具交流會更私人化一點。

不管怎樣,一旦Rose根據反饋完成了代碼修改,她可以發一份新版本的代碼給審查者,這份代碼叫修訂版。

若有必要,她還會收到反饋。這個循環視情況而定會持續好幾輪,一般的小代碼審查一次即可,復雜的代碼可能得審查多輪。

這樣的工作是很常見的,還可能在作者和審查者之間擦出思維的火花。

所有的審查者都批準,Rose登記代碼

完事之后,審查者標記代碼為okay,Rose終于可以把代碼補充到公共代碼庫了。有些團隊會允許開發者在審查結束前就把代碼上傳到代碼庫。這種情況通常在代碼只需小修小改的時候發生,這樣可以異步審查并加速開發。

上面我說的所有步驟都是Microsoft代碼審查周期的常規操作,被所有團隊執行,根據團隊不同而略有出入。

并非所有團隊都一樣

如你所想,事情并非一成不變。Microsoft的一些團隊會有些額外步驟或工具助力代碼審查。我會簡單介紹這些額外步驟。

包含測試結果的代碼審查

可能你最不想做的事情就是,審查那些代碼審查軟件就可以審查的代碼。所以你應該在審查之前先跑一遍測試。

一些團隊要求做代碼審查的時候把測試結果也一起上傳。這樣可以保證人人都測試一下。

其它團隊可能更加嚴格,每個審查者審查的時候都會觸發編譯,編譯和測試的結果都會被放在審查報告上。

涉及用戶交互界面的代碼審查

如果開發者把用戶交互界面也改了,那TA最好截個屏給別人看下。這樣審查者就省的跑代碼了,直接看圖片就行,審查者也可以方便檢查因運行環境不同而產生的差異。

包含靜態分析的代碼審查

靜態分析對規范代碼樣式來說尤其有效。微軟的一些團隊使用自動化的靜態和動態分析工具作為專用的機器人評審員。這些機器人評論代碼樣式和其他靜態問題。這樣就能騰出時間讓人工代碼審閱者執行更有趣的任務。

微軟的代碼審查工具

多年來,微軟實際上的代碼評審標準之一是一個名為codeflow的內部工具。這是一個復雜的代碼評審工具,它支持開發人員并指導他們完成代碼評審的所有步驟。

Codeflow幫助編寫代碼,自動通知審閱者,并具有豐富的注釋和討論功能。

codeflow是一個相當依賴UI的工具,很像Word或PowerPoint,如下面的截圖所示。

CodeFlow界面說明

看屏幕截圖,在左邊(A)你可以看到所有受影響的文件。

同樣在左邊,您可以看到(B)分配給評審的審核員名單以及他們的狀態(例如,已簽署或待決)。活動文檔顯示在編輯器(C)中。在底部,您可以看到(D)所有文檔的注釋列表。

另一方面,在活動文檔(F)中只有一個注釋。此注釋連接到代碼的具體部分(即一行中的一個單詞)。最后,在頂部,您可以看到代碼評審的總體狀態。在這種情況下,已經完成。之前的數字表明了不同的修正。在這次審查中,進行了五次修訂。

評注功能

Codeflow最優秀的特性之一是它的評論功能。代碼審閱者可以非常精確地選擇她想要評論的代碼的部分。例如,審閱者甚至可以在一行中高亮顯示一個或兩個字符,而不是突出顯示整個行。然后,審閱者可以將評論附加到該選擇。

將此注釋通知代碼作者或其他審閱者,并可以圍繞此注釋以線程的形式啟動會話。

討論功能

這種評論功能就像在Twitter或Facebook等社交媒體平臺上發表評論。因此,Codeflow的評論體驗非常自然,人們可以進行豐富的對話和討論。另一個不錯的好處是可以為這些評論線程中的每一個指定一個狀態。例如,狀態可以是“不會修復”、“已解決”或“打開”。

代碼評審修訂的比較

你也可以選擇代碼評審的兩個不同版本,并比較兩者之間的差異。這意味著您可以準確地看到代碼評審作者在一個代碼評審修訂版和另一個代碼評審修訂版之間執行了哪些更改。這方便了跟蹤審查的進展。

代碼評審分析工具

開發人員花費大量時間在Microsoft執行代碼評審。為了確保這段時間得到充分利用,Microsoft擁有自己的代碼評審分析平臺。

該平臺存儲從代碼評審開始的所有代碼評審數據,參與代碼評審的開發人員,以及開發人員的所有評論。甚至可以追溯每次修訂的代碼更改。

這些代碼評審數據是Microsoft對代碼評審進行多項實證研究的基礎。許多產品團隊也使用它來理解他們自己的代碼評審實踐。

微軟代碼評審的未來

隨著Micorosft的參與和對GitHub的收購,改變是不可避免的。例如,在Microsoft中廣泛采用git作為源代碼管理工具,就可以看出這種變化。但是,這也意味著在微軟,以”pull request”的形式進行的代碼評審正在上升。

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

    關注

    4

    文章

    6602

    瀏覽量

    104152
  • 代碼
    +關注

    關注

    30

    文章

    4797

    瀏覽量

    68710

原文標題:我們走訪了900名微軟員工,為你揭秘全球最大軟件公司的代碼評審機制

文章出處:【微信號:BigDataDigest,微信公眾號:大數據文摘】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    圓柱電池測試設備:確保電池性能與質量的關鍵

    在新能源產業的快速發展背景下,圓柱電池作為重要的能量儲存裝置,其性能和質量直接關系到電動汽車、儲能系統以及各種便攜式電子設備的性能表現和使用壽命。為了確保圓柱電池能夠在實際應用中發揮最佳效能,圓柱
    的頭像 發表于 01-06 17:22 ?68次閱讀

    精密焊接熱量監測儀:確保焊接質量與安全的關鍵技術

    精密焊接在現代工業生產中占據著極其重要的地位,尤其是在航空航天、汽車制造、電子設備等領域,焊接的質量直接影響到產品的性能和安全性。為了確保焊接過程的高效性和安全性,精密焊接熱量監測技術應運而生,成為保障焊接質量與安全的關鍵技術之
    的頭像 發表于 01-04 08:19 ?85次閱讀

    微軟GitHub與Anthropic和谷歌合作

    近日,微軟旗下的GitHub宣布了一項重要合作,將Anthropic和谷歌的AI模型整合到其代碼助理中,為數百萬軟件開發者提供新的AI模型選項。
    的頭像 發表于 10-30 16:25 ?191次閱讀

    DevOps中的質量門工作原理,以及靜態代碼分析Klocwork和Perforce Helix QAC在質量門中的實踐應用

    質量門”正如其名:它們在軟件開發生命周期(SDLC)的各個階段充當質量里程碑(或 "門檻"),防止不良代碼通過,從而確保交付高質量的軟件。
    的頭像 發表于 07-29 15:12 ?417次閱讀

    什么是質量閘門?

    無論您是執行增量分析、差異分析還是集成分析,靜態分析/SAST 工具都旨在優化 DevOps 和 DevSecOps 流程,并且可以作為檢查代碼質量和安全問題的一種質量閘門類型 —— 而不會放慢開發
    的頭像 發表于 07-16 23:11 ?253次閱讀
    什么是<b class='flag-5'>質量</b>閘門?

    該如何提高代碼容錯率、降低代碼耦合度?

    提高RT-Thread代碼的容錯率和降低耦合度是確保代碼質量和可維護性的關鍵,下面列舉了幾種在編寫代碼時,提高
    的頭像 發表于 06-26 08:10 ?685次閱讀
    該如何提高<b class='flag-5'>代碼</b>容錯率、降低<b class='flag-5'>代碼</b>耦合度?

    微軟邀insider測試網頁版和Windows版Outlook

    微軟強調,收件人無需跳出收件箱即可觀看嵌入的視頻,這將極大提升郵件的互動性,確保更多員工能夠準確理解郵件所傳達的信息
    的頭像 發表于 05-16 14:25 ?497次閱讀

    如何提升代碼質量與效率的秘訣

    提高編程能力其實沒有捷徑,最佳方式就是多寫代碼。 不過,除了寫大量代碼,提升編程能力還需要大量閱讀別人寫的代碼
    的頭像 發表于 04-28 14:53 ?407次閱讀
    如何提升<b class='flag-5'>代碼</b><b class='flag-5'>質量</b>與效率的秘訣

    電池模組在生產過程中如何進行質量控制以確保絕緣性能?

    電池模組的絕緣性能對于確保電動汽車和儲能系統的安全性至關重要。在生產過程中,通過一系列嚴格的質量控制措施來確保絕緣性能,可以有效預防電氣故障和事故的發生。
    的頭像 發表于 04-17 11:13 ?888次閱讀

    光伏電站電能質量監測可使用16位SC1467,兼容AD7606確保其與電網協調

    電子發燒友網站提供《光伏電站電能質量監測可使用16位SC1467,兼容AD7606確保其與電網協調.docx》資料免費下載
    發表于 02-26 09:28 ?1次下載

    蘋果微軟曾洽購必應,因谷歌搜索質量未果

    CNBC及其他媒體引述的美國司法部反壟斷公訴書詳細列舉了谷歌在搜索領域所持的壟斷角色。訴狀中透露,盡管微軟多次試圖將必應用戶作為Safari瀏覽器的默認搜索引擎,但每一次均因搜索結果質量不滿意而遭遭到蘋果的回絕。
    的頭像 發表于 02-25 10:39 ?707次閱讀

    代碼檢查的方式有三種

    【摘要】?代碼檢查中,提到的編程規范,規則集,規則,規則用例(場景、誤報、檢出)分別代表什么意思? 在 SAST 靜態檢查領域,代碼檢查服務可以幫助開發者發現和修復代碼中的風格、
    的頭像 發表于 02-25 10:08 ?866次閱讀
    <b class='flag-5'>代碼</b>檢查的方式有三種

    激光焊縫跟蹤系統:提升焊接效率,確保焊接質量

    確保了焊接質量。 激光焊縫跟蹤系統通過激光技術,實現了對焊縫的精準識別和跟蹤。它能夠在焊接過程中實時感知焊縫的位置和形狀,為焊接機器人或自動化設備提供精確的數據支持。這使得焊接過程更加智能化、自動化,大大提
    的頭像 發表于 02-19 15:25 ?362次閱讀

    確保無線設備質量和互操作性的關鍵:北美PTCRB認證

    設備進行測試和審核,確保其符合北美CDMA和LTE網絡的要求,同時保證設備的質量和性能可靠可行。針對PTCRB的認證是指在北美地區銷售無線通信設備所需的一種認證。
    的頭像 發表于 02-18 16:12 ?475次閱讀
    <b class='flag-5'>確保</b>無線設備<b class='flag-5'>質量</b>和互操作性的關鍵:北美PTCRB認證

    EMC測試整改:確保電磁兼容性,提升產品質量

    EMC測試整改:確保電磁兼容性,提升產品質量?|深圳比創達電子
    的頭像 發表于 01-30 10:06 ?425次閱讀
    EMC測試整改:<b class='flag-5'>確保</b>電磁兼容性,提升產品<b class='flag-5'>質量</b>?
    主站蜘蛛池模板: 亚洲日本在线观看视频| 高清一区二区| 国语对白老女人8av| 婷婷九月丁香| 亚洲欧美人成网站综合在线| 五月婷婷婷婷婷| 婷婷在线网| 天天爱夜夜爽| 国产三级精品视频| 欧美日韩国产乱了伦| 欧美日韩精品一区二区另类 | 成人免费午间影院在线观看| 天天干夜夜操| 夜夜摸夜夜爽| 五月欧美激激激综合网色播| ww欧洲ww在线视频看| 精品一区 二区三区免费毛片| 色综合日韩| 亚洲美女视频在线观看| 无遮挡一级毛片| 日本免费观看完整视频| 久久婷婷国产综合精品| 免费的黄色片| 欧美一级在线免费观看| 四虎电影免费观看网站| 欧美成人性色| www四虎影院| 黄色绿像一级片| a色在线| 一级毛片免费不卡在线视频| 手机看片日韩福利| 亚洲人成网站色7799在线播放| 黄a视频| 国内黄色精品| 亚洲涩综合| 亚洲欧美色图| 免费一级特黄特色大片在线| 又黑又长黑人欧美三级| 91破处视频| 好硬好湿好爽再深一点h视频| 国产精品污视频|