中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

別怠慢代碼審查

發(fā)布于:2021-01-18 09:15:17

0

139

0

代碼審查 開(kāi)發(fā)人員

在我工作過(guò)的許多軟件商店里,代碼評(píng)審的話題總是引起很多爭(zhēng)論。經(jīng)常有人問(wèn)我對(duì)代碼評(píng)審的看法,我的回答可能會(huì)讓你大吃一驚。我不喜歡。為什么呢?讓我說(shuō)得更具體一點(diǎn),我不喜歡在工作完成之后進(jìn)行代碼評(píng)審。

我確實(shí)喜歡在工作過(guò)程中不斷進(jìn)行的代碼評(píng)審,這叫做成對(duì)編程。

配對(duì)編程=連續(xù)代碼審查?

是的,這正是我要說(shuō)的

想想看,你真的能比成對(duì)編程提供更好、更誠(chéng)實(shí)、更具交互性的代碼評(píng)審嗎?如果兩個(gè)開(kāi)發(fā)人員共同開(kāi)發(fā)代碼的一部分,那么在編寫(xiě)代碼的過(guò)程中會(huì)對(duì)其進(jìn)行檢查

我將轉(zhuǎn)移一點(diǎn)時(shí)間來(lái)討論代碼評(píng)審中發(fā)生的一些常見(jiàn)問(wèn)題,然后我將討論成對(duì)編程如何解決這些問(wèn)題

代碼評(píng)審問(wèn)題

1.不說(shuō)真話

在代碼評(píng)審中,沒(méi)有人說(shuō)他們認(rèn)為代碼有什么問(wèn)題,而是挑選一些沒(méi)有冒犯性的小東西,比如沒(méi)有遵循的命名約定,這是沒(méi)有價(jià)值的

很多時(shí)候,代碼審查都被一種害怕侮辱正在審查的人的代碼的恐懼所支配。這種弱代碼審查沒(méi)有任何好處。我甚至可以說(shuō)它加強(qiáng)了編寫(xiě)壞代碼的實(shí)踐,因?yàn)閴拇a是橡皮圖章

2.自我

要想成功地進(jìn)行代碼審查,每個(gè)人都必須在門(mén)口檢查自己的自我。這種情況很少發(fā)生。代碼是經(jīng)過(guò)創(chuàng)造性設(shè)計(jì)的東西;沒(méi)有太多人能夠?qū)ψ约旱膭趧?dòng)進(jìn)行批評(píng),對(duì)自己的藝術(shù)更是少之又少

沒(méi)有謙虛和開(kāi)放的精神,代碼評(píng)審就沒(méi)有任何價(jià)值,指出問(wèn)題是一回事,解決問(wèn)題是另一回事

3.對(duì)焦錯(cuò)誤

代碼評(píng)審中最常見(jiàn)的錯(cuò)誤之一是關(guān)注格式、編碼樣式或命名約定,這些主題根本不屬于代碼評(píng)審

工具可以自動(dòng)格式化代碼,并靜態(tài)分析編碼樣式或命名約定的問(wèn)題。讓人工審閱者審閱這些內(nèi)容完全是浪費(fèi)時(shí)間。

說(shuō)真的,如果有人在代碼評(píng)審時(shí),沒(méi)有對(duì)代碼運(yùn)行自動(dòng)代碼格式化程序,也沒(méi)有運(yùn)行靜態(tài)分析工具,也沒(méi)有修復(fù)在那里發(fā)現(xiàn)的問(wèn)題,不要太粗魯,只是善意地告訴他們,他們的代碼還沒(méi)有準(zhǔn)備好進(jìn)行評(píng)審

旁注:關(guān)于我們是否應(yīng)該強(qiáng)制執(zhí)行代碼格式,或者強(qiáng)制執(zhí)行編碼樣式,或者強(qiáng)制執(zhí)行命名約定,經(jīng)常有爭(zhēng)論。是的!對(duì)!對(duì)!一致性非常重要!代碼比書(shū)面代碼更容易閱讀,一致的代碼更容易閱讀。進(jìn)行一次討論,將自動(dòng)工具放在一起自動(dòng)格式化代碼,并自動(dòng)檢查需求

不要花幾個(gè)月的時(shí)間來(lái)編寫(xiě)你的特殊編碼標(biāo)準(zhǔn)文檔。使用任何數(shù)量的靜態(tài)分析工具中的一些規(guī)則集,并開(kāi)始強(qiáng)制執(zhí)行它們。將它們作為構(gòu)建的一部分,使簽入因格式問(wèn)題而失敗,使IDE在保存時(shí)自動(dòng)格式化。決定花括號(hào)和空格的完美位置遠(yuǎn)不如保持一致重要。只需選擇一些內(nèi)容并強(qiáng)制執(zhí)行即可

代碼評(píng)審應(yīng)該關(guān)注代碼的設(shè)計(jì)、結(jié)構(gòu)和可理解性。代碼評(píng)審永遠(yuǎn)不應(yīng)該關(guān)注任何可以自動(dòng)檢查或強(qiáng)制執(zhí)行的東西……永遠(yuǎn)!

4.匆忙和不一致

團(tuán)隊(duì)很少有時(shí)間或騰出時(shí)間進(jìn)行代碼評(píng)審。如果他們這樣做了,代碼評(píng)審就不一致,而且不適用于所有代碼,這會(huì)導(dǎo)致代碼值丟失。如果你在一個(gè)周界周?chē)幸粋€(gè)巨大的圍欄,而在一個(gè)大洞里人們只能爬進(jìn)去,那么圍欄就毫無(wú)價(jià)值了

如果代碼沒(méi)有經(jīng)過(guò)深入的檢查,那么代碼檢查是沒(méi)有意義的。只需瀏覽代碼并在這里選擇幾個(gè)變量名就沒(méi)有好處了。如果你還沒(méi)有準(zhǔn)備好完全沉浸在正在檢查的代碼中,并深入了解它到底在做什么,那就不用麻煩了

配對(duì)編程來(lái)進(jìn)行救援

成對(duì)編程就像即時(shí)代碼評(píng)審一樣,它通過(guò)有一個(gè)共同的目標(biāo)并在代碼中創(chuàng)建一個(gè)共同的所有權(quán)來(lái)解決許多問(wèn)題

當(dāng)您與團(tuán)隊(duì)中的不同成員配對(duì)時(shí),您可能會(huì)更誠(chéng)實(shí),更少自大,關(guān)注問(wèn)題而不是慣例,并深入研究代碼

毫無(wú)疑問(wèn),我的首選操作方法是不進(jìn)行代碼檢查,而是成對(duì)編程,每個(gè)監(jiān)控人員都致力于源代碼管理,如果發(fā)現(xiàn)問(wèn)題,可以標(biāo)記一些內(nèi)容并進(jìn)行討論

如果配對(duì)編程不是一個(gè)選項(xiàng)怎么辦?

好吧,試著做一個(gè)。配對(duì)編程是一個(gè)偉大的投資

但是,如果你不做配對(duì)編程,你絕對(duì)應(yīng)該做代碼檢查。我可能會(huì)稱(chēng)贊代碼評(píng)審中的一些問(wèn)題,我提倡成對(duì)編程,但我們不要在這里含糊其辭

結(jié)對(duì)編程是進(jìn)行連續(xù)或即時(shí)代碼評(píng)審的更好方法。不進(jìn)行任何形式的代碼評(píng)審都是愚蠢的。

如果你有一個(gè)建筑團(tuán)隊(duì)在建造你的房子或者你的2000萬(wàn)美元的刮板,他們告訴你他們沒(méi)有對(duì)已經(jīng)完成的工作進(jìn)行工程審查,你可能會(huì)當(dāng)場(chǎng)解雇那家建筑公司。建筑軟件的復(fù)雜程度比大多數(shù)實(shí)體建筑項(xiàng)目要高出好幾個(gè)層次。如果你稱(chēng)自己為工程師,而不是定期對(duì)自己的工作進(jìn)行審查,那么你只是一個(gè)玩“工程師”游戲的業(yè)余愛(ài)好者。

因此,如果您必須進(jìn)行老式的代碼檢查,以下是一些我發(fā)現(xiàn)很有用的提示:

  • 通過(guò)做一些練習(xí)來(lái)鼓勵(lì)人們誠(chéng)實(shí),每個(gè)人都會(huì)檢查一些不是您團(tuán)隊(duì)中任何人編寫(xiě)的代碼。鼓勵(lì)人們?cè)跈z查代碼時(shí)盡可能保持偏見(jiàn)。

  • 設(shè)定您的期望值。代碼檢查不是審批流程,它們是一個(gè)改進(jìn)過(guò)程。確保團(tuán)隊(duì)意識(shí)到這一點(diǎn)。代碼評(píng)審是一個(gè)讓代碼變得更好、提高技能的地方。培養(yǎng)這種思維。

  • 自動(dòng)化所有挑剔的東西,設(shè)置編碼標(biāo)準(zhǔn)、格式標(biāo)準(zhǔn)和樣式標(biāo)準(zhǔn)。決定它們將結(jié)合在一起,或者讓你有經(jīng)驗(yàn)的人來(lái)做,但要做到,讓合規(guī)性成為非選擇性,并使之自動(dòng)化。

  • 制定一致的標(biāo)準(zhǔn)和實(shí)踐來(lái)進(jìn)行代碼檢查。留出足夠的時(shí)間深入研究代碼。制定和實(shí)施代碼檢查時(shí)間和方式的標(biāo)準(zhǔn)。

  • 以身作則。主動(dòng)要求團(tuán)隊(duì)成員查看代碼并告訴您如何改進(jìn)代碼。詢(xún)問(wèn)是否有這樣的問(wèn)題可以做得更好。對(duì)反饋和改進(jìn)表現(xiàn)出真正的興趣,這種態(tài)度就會(huì)流行起來(lái)。