女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

微軟是如何確保代碼質(zhì)量的呢?

電子工程師 ? 來源:yxw ? 2019-05-29 14:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

Office、Visual Studio或Windows等幾種產(chǎn)品,都是由數(shù)千名同時在同一代碼庫上工作的工程師開發(fā)的。確保由不同子團(tuán)隊(duì)開發(fā)的代碼完美地協(xié)同工作是一件非常重要的任務(wù)。

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

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

微軟代碼評審是一種被廣泛采用的工程實(shí)踐。成千上萬的工程師認(rèn)為這是一個偉大的最佳實(shí)踐。大多數(shù)高績效團(tuán)隊(duì)花費(fèi)大量時間進(jìn)行代碼評審。

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

調(diào)研微軟的代碼評審

在微軟代碼評審的大規(guī)模研究中,我們采訪、觀察并調(diào)查了900多名開發(fā)人員。

我們的目的是了解如何在微軟完成代碼評審。我們想知道,在進(jìn)行代碼評審的時候,開發(fā)人員面臨哪些陷阱,以及他們?yōu)榭朔@些挑戰(zhàn)而開發(fā)的最佳實(shí)踐。

您可以從微軟的代碼評審實(shí)踐中學(xué)到什么?

大多數(shù)經(jīng)驗(yàn)教訓(xùn)對于小型或大型團(tuán)隊(duì)組織都很有價值。如果您的團(tuán)隊(duì)尚未進(jìn)行代碼評審,我會向您展示該實(shí)踐的好處。如果您的團(tuán)隊(duì)已經(jīng)有了代碼評審機(jī)制,您可以將您的實(shí)踐與微軟的代碼評審實(shí)踐進(jìn)行比較。

微軟工程師多久進(jìn)行一次代碼審查?

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

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

代碼評審提供哪些好處?

代碼評審的好處

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

知識轉(zhuǎn)移意味著,審核彼此代碼的團(tuán)隊(duì)成員熟悉代碼庫的大部分內(nèi)容。但是,這也意味著代碼評審最好在團(tuán)隊(duì)內(nèi)部實(shí)施。另一個優(yōu)點(diǎn)是,新的團(tuán)隊(duì)成員和初級開發(fā)人員可以在審閱或獲得反饋的同時學(xué)習(xí)和提高他們的編碼技能。

如果開發(fā)人員在代碼評審期間討論替代解決方案,它不僅可以改善代碼庫,還可以為所有相關(guān)人員提供學(xué)習(xí)機(jī)會。因此,學(xué)習(xí)、指導(dǎo)和自我改進(jìn)是代碼評審之所以被認(rèn)為是微軟的一種有益實(shí)踐的主要原因。

開發(fā)人員通常如何進(jìn)行代碼評審?

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

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

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

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

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

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

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

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

誰是相關(guān)審閱者?

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

代碼評審的一般步驟

Rose要求她的同行反饋

一旦選中每個人,Rose就會發(fā)出代碼評審。代碼評審工具會自動發(fā)送創(chuàng)建評審的通知到每個人。通知對象不僅包括所有審閱者,也會包括其他人員,例如相關(guān)團(tuán)隊(duì)的經(jīng)理或產(chǎn)品經(jīng)理。這些通知允許他們的信息保持同步,即使他們不需要執(zhí)行評審。

接受反饋是個迭代過程

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

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

Rose準(zhǔn)備新版本的代碼

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

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

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

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

所有的審查者都批準(zhǔn),Rose登記代碼

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

上面我說的所有步驟都是Microsoft代碼審查周期的常規(guī)操作,被所有團(tuán)隊(duì)執(zhí)行,根據(jù)團(tuán)隊(duì)不同而略有出入。

并非所有團(tuán)隊(duì)都一樣

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

包含測試結(jié)果的代碼審查

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

一些團(tuán)隊(duì)要求做代碼審查的時候把測試結(jié)果也一起上傳。這樣可以保證人人都測試一下。

其它團(tuán)隊(duì)可能更加嚴(yán)格,每個審查者審查的時候都會觸發(fā)編譯,編譯和測試的結(jié)果都會被放在審查報(bào)告上。

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

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

包含靜態(tài)分析的代碼審查

靜態(tài)分析對規(guī)范代碼樣式來說尤其有效。微軟的一些團(tuán)隊(duì)使用自動化的靜態(tài)和動態(tài)分析工具作為專用的機(jī)器人評審員。這些機(jī)器人評論代碼樣式和其他靜態(tài)問題。這樣就能騰出時間讓人工代碼審閱者執(zhí)行更有趣的任務(wù)。

微軟的代碼審查工具

多年來,微軟實(shí)際上的代碼評審標(biāo)準(zhǔn)之一是一個名為codeflow的內(nèi)部工具。這是一個復(fù)雜的代碼評審工具,它支持開發(fā)人員并指導(dǎo)他們完成代碼評審的所有步驟。

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

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

CodeFlow界面說明

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

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

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

評注功能

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

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

討論功能

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

代碼評審修訂的比較

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

代碼評審分析工具

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

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

這些代碼評審數(shù)據(jù)是Microsoft對代碼評審進(jìn)行多項(xiàng)實(shí)證研究的基礎(chǔ)。許多產(chǎn)品團(tuán)隊(duì)也使用它來理解他們自己的代碼評審實(shí)踐。

微軟代碼評審的未來

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

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

    關(guān)注

    4

    文章

    6685

    瀏覽量

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

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70682

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

文章出處:【微信號:BigDataDigest,微信公眾號:大數(shù)據(jù)文摘】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    如何評估CAN總線信號質(zhì)量

    CAN總線網(wǎng)絡(luò)的性能在很大程度上取決于其信號質(zhì)量。信號質(zhì)量差可能導(dǎo)致通信錯誤,進(jìn)而引發(fā)系統(tǒng)故障、效率降低甚至安全隱患。因此,評估和確保CAN總線信號質(zhì)量是維護(hù)系統(tǒng)健康和可靠性的關(guān)鍵。
    發(fā)表于 06-07 08:46

    請問K210和K230開發(fā)如何確保代碼安全?

    K210和K230開發(fā)如何確保代碼安全?
    發(fā)表于 06-06 06:38

    捷多邦PCB制造:從設(shè)計(jì)到成品,如何確保最高質(zhì)量

    在現(xiàn)代電子行業(yè),PCB(印刷電路板)的質(zhì)量直接影響到產(chǎn)品的穩(wěn)定性與性能。作為全球領(lǐng)先的PCB制造商,捷多邦始終將質(zhì)量放在第一位,致力于為客戶提供高可靠性、高精度的PCB產(chǎn)品。為了確保每一塊成品PCB
    的頭像 發(fā)表于 03-19 10:59 ?387次閱讀

    如何在日常開發(fā)過程中提高代碼質(zhì)量

    。 提高代碼質(zhì)量是一個系統(tǒng)工程,本文主要介紹開發(fā)人員如何在日常開發(fā)過程中提高代碼質(zhì)量。 01 什么是代碼
    的頭像 發(fā)表于 01-23 09:09 ?561次閱讀
    如何在日常開發(fā)過程中提高<b class='flag-5'>代碼</b><b class='flag-5'>質(zhì)量</b>

    如何提高嵌入式代碼質(zhì)量

    嵌入式代碼質(zhì)量是至關(guān)重要的。本文將探討如何通過有效的開發(fā)方法和工具來提高嵌入式代碼質(zhì)量,以確保系統(tǒng)的可靠性和可維護(hù)性。 理解嵌入式系
    發(fā)表于 01-15 10:48

    焊點(diǎn)能量實(shí)時檢測儀:確保焊接質(zhì)量與效率的新利器

    隨著工業(yè)技術(shù)的不斷進(jìn)步,焊接作為制造業(yè)中的關(guān)鍵工藝之一,其質(zhì)量和效率直接影響到產(chǎn)品的整體性能和生產(chǎn)成本。為了更好地控制焊接過程,確保每一個焊點(diǎn)都能達(dá)到預(yù)期的質(zhì)量標(biāo)準(zhǔn),焊點(diǎn)能量實(shí)時檢測儀應(yīng)運(yùn)而生。這種
    的頭像 發(fā)表于 01-11 08:58 ?437次閱讀

    高頻焊接實(shí)時監(jiān)測系統(tǒng):確保生產(chǎn)安全與質(zhì)量的關(guān)鍵技術(shù)

    和應(yīng)用高頻焊接實(shí)時監(jiān)測系統(tǒng)成為了確保生產(chǎn)安全與質(zhì)量的關(guān)鍵技術(shù)之一。本文將探討高頻焊接實(shí)時監(jiān)測系統(tǒng)的原理、功能及其在實(shí)際生產(chǎn)中的應(yīng)用價值。 ### 高頻焊接技術(shù)概述 高
    的頭像 發(fā)表于 01-11 08:58 ?497次閱讀

    Jenkins 與 SonarQube 集成部署,自動化代碼質(zhì)量監(jiān)控

    前言 強(qiáng)化代碼質(zhì)量,加速軟件交付!Jenkins 攜手 SonarQube,與華為云 Flexus X 云服務(wù)器強(qiáng)強(qiáng)聯(lián)合,打造自動化代碼質(zhì)量監(jiān)控新生態(tài)。Flexus X 以其靈活的算力
    的頭像 發(fā)表于 01-07 17:24 ?709次閱讀
    Jenkins 與 SonarQube 集成部署,自動化<b class='flag-5'>代碼</b><b class='flag-5'>質(zhì)量</b>監(jiān)控

    SMT來料質(zhì)檢:確保電子生產(chǎn)質(zhì)量的關(guān)鍵

    來料檢驗(yàn)是SMT組裝品質(zhì)控制的首要環(huán)節(jié),對確保最終產(chǎn)品質(zhì)量至關(guān)重要。嚴(yán)格檢驗(yàn)原材料可以避免不合格品影響公司聲譽(yù)及造成經(jīng)濟(jì)損失,如返修、返工和退貨等。因此,在接收物料時,應(yīng)依據(jù)供應(yīng)商提供的規(guī)格書檢查各
    的頭像 發(fā)表于 01-07 16:18 ?2331次閱讀
    SMT來料質(zhì)檢:<b class='flag-5'>確保</b>電子生產(chǎn)<b class='flag-5'>質(zhì)量</b>的關(guān)鍵

    SMT來料質(zhì)檢:確保電子生產(chǎn)質(zhì)量的關(guān)鍵

    來料檢驗(yàn)是SMT組裝品質(zhì)控制的首要環(huán)節(jié),對確保最終產(chǎn)品質(zhì)量至關(guān)重要。嚴(yán)格檢驗(yàn)原材料可以避免不合格品影響公司聲譽(yù)及造成經(jīng)濟(jì)損失,如返修、返工和退貨等。因此,在接收物料時,應(yīng)依據(jù)供應(yīng)商提供的規(guī)格書檢查各
    發(fā)表于 01-07 16:16

    圓柱電池測試設(shè)備:確保電池性能與質(zhì)量的關(guān)鍵

    在新能源產(chǎn)業(yè)的快速發(fā)展背景下,圓柱電池作為重要的能量儲存裝置,其性能和質(zhì)量直接關(guān)系到電動汽車、儲能系統(tǒng)以及各種便攜式電子設(shè)備的性能表現(xiàn)和使用壽命。為了確保圓柱電池能夠在實(shí)際應(yīng)用中發(fā)揮最佳效能,圓柱
    的頭像 發(fā)表于 01-06 17:22 ?466次閱讀

    精密焊接熱量監(jiān)測儀:確保焊接質(zhì)量與安全的關(guān)鍵技術(shù)

    精密焊接在現(xiàn)代工業(yè)生產(chǎn)中占據(jù)著極其重要的地位,尤其是在航空航天、汽車制造、電子設(shè)備等領(lǐng)域,焊接的質(zhì)量直接影響到產(chǎn)品的性能和安全性。為了確保焊接過程的高效性和安全性,精密焊接熱量監(jiān)測技術(shù)應(yīng)運(yùn)而生,成為保障焊接質(zhì)量與安全的關(guān)鍵技術(shù)之
    的頭像 發(fā)表于 01-04 08:19 ?428次閱讀

    微軟GitHub與Anthropic和谷歌合作

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

    DevOps中的質(zhì)量門工作原理,以及靜態(tài)代碼分析Klocwork和Perforce Helix QAC在質(zhì)量門中的實(shí)踐應(yīng)用

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

    什么是質(zhì)量閘門?

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