評(píng)審尤其是同行評(píng)審,是提前發(fā)現(xiàn)缺陷,降低開(kāi)發(fā)成本的有效方法;但是很多企業(yè)并不重視,或者效果不佳。
原因有很多:沒(méi)有獲得合適的專家、組織不合理、方法不當(dāng)?shù)取a槍?duì)代碼評(píng)審,我想簡(jiǎn)單地談幾點(diǎn)(其實(shí)其它工程文檔的評(píng)審存在同樣問(wèn)題):1、評(píng)審要計(jì)劃。
因?yàn)榇蠹叶己苊Γ黝I(lǐng)域的專家也都有各自的工作,評(píng)審結(jié)果的好壞對(duì)他們工作績(jī)效沒(méi)有影響,所以專家投入多少精力來(lái)用于評(píng)審不受控,完全靠他們自己的職業(yè)精神。 所以,這就要求項(xiàng)目經(jīng)理比較有影響力,能夠爭(zhēng)取到足夠的、合適的專家來(lái)參與評(píng)審。
專家最好要提前協(xié)調(diào),當(dāng)然項(xiàng)目經(jīng)理首先要知道要請(qǐng)哪些專家(如系統(tǒng)專家、領(lǐng)域?qū)<摇y(cè)試人員、QA等),這些專家在哪里?能否獲得專家資源的支持,是項(xiàng)目經(jīng)理的項(xiàng)目管理能力一個(gè)重要體現(xiàn)。評(píng)審時(shí)間的投入比例,一般是第一次版本準(zhǔn)備時(shí)間的3/5以上。
2、評(píng)審要分層次和重點(diǎn)。作為項(xiàng)目成員,在代碼編寫完成后,首先是自檢,這時(shí)發(fā)現(xiàn)的缺陷不計(jì)算;然后是項(xiàng)目組內(nèi)的評(píng)審,這時(shí)發(fā)現(xiàn)的缺陷應(yīng)計(jì)算;最后才是外部評(píng)審。
應(yīng)提前把相關(guān)文檔和代碼交給評(píng)審專家,讓他們各自評(píng)審;根據(jù)項(xiàng)目和評(píng)審結(jié)果的情況,決定是否召開(kāi)評(píng)審會(huì)議,評(píng)審會(huì)議以確認(rèn)問(wèn)題為主,而不是討論解決方案。對(duì)于重要的核心的代碼,要投入重點(diǎn)評(píng)審力量;另外,對(duì)于能力不足的成員所完成的代碼,也要重點(diǎn)評(píng)審。
每個(gè)角色也應(yīng)明白各自評(píng)審重點(diǎn),如QA重點(diǎn)放在編程規(guī)范、測(cè)試人員側(cè)重在可測(cè)性、系統(tǒng)專家側(cè)重在從整體來(lái)考慮(如對(duì)其它功能的影響、性能等)。3、問(wèn)題的確認(rèn)與跟蹤。
評(píng)審專家發(fā)現(xiàn)問(wèn)題后,首先與該代碼的完成人進(jìn)行確認(rèn),如果大家達(dá)成一致認(rèn)可這個(gè)問(wèn)題,然后由代碼完成人提出解決方案,這個(gè)解決方案要得到問(wèn)題發(fā)現(xiàn)者的同意,然后編程人員編碼實(shí)現(xiàn)該方案,并進(jìn)行測(cè)試和驗(yàn)證,并將驗(yàn)證結(jié)果提交問(wèn)題發(fā)現(xiàn)人,問(wèn)題發(fā)現(xiàn)人確認(rèn)無(wú)誤后,該問(wèn)題就可關(guān)閉。所以,評(píng)審專家發(fā)現(xiàn)問(wèn)題后并沒(méi)有結(jié)束,而是要負(fù)責(zé)跟蹤該問(wèn)題。
總之,評(píng)審活動(dòng)的組織其實(shí)比較復(fù)雜,也是項(xiàng)目經(jīng)理項(xiàng)目管理能力的一個(gè)重要體現(xiàn),項(xiàng)目經(jīng)理對(duì)評(píng)審活動(dòng)負(fù)有重要責(zé)任。
代碼review主要就是事前的準(zhǔn)備,執(zhí)行,和后期的跟蹤事前的準(zhǔn)備也叫做review的輸入,這個(gè)輸入是在什么條件下可以做為輸入,可以是個(gè)人檢查完了,也可以是相互交叉的檢查,這里有個(gè)檢查的標(biāo)準(zhǔn),如有個(gè)檢查單什么的,等規(guī)定的輸入完成之后,進(jìn)行review的執(zhí)行在review中,主要就是首先保證什么人參加,這是最主要的,如果找?guī)讉€(gè)沒(méi)有什么經(jīng)驗(yàn)的,那review的效果肯定是打折扣的,review的多少時(shí)間跟蹤,主要是問(wèn)題的跟蹤和后期的數(shù)據(jù)的度量你上面說(shuō)的相互評(píng)審,主要是項(xiàng)目?jī)?nèi)部的review,review分好幾種,有內(nèi)部的,專家的,客戶的review代碼時(shí)主要看是否符合編碼規(guī)范,特別是是否符合設(shè)計(jì)書(需求)的要求,邏輯是否正確,主要是專家級(jí)!。
常用的評(píng)標(biāo)方法有 1單項(xiàng)評(píng)議法 2綜合評(píng)標(biāo)法 3合理單價(jià)評(píng)標(biāo)法 常用的評(píng)標(biāo)方法介紹 1單項(xiàng)評(píng)議法 單項(xiàng)評(píng)議法,又稱單因素評(píng)議法、低標(biāo)價(jià)法,是一種只對(duì)投標(biāo)人的投標(biāo)報(bào)價(jià)進(jìn)行評(píng)議從而確定中標(biāo)人的評(píng)標(biāo)定標(biāo)方法,主要適用于小型工程。
單項(xiàng)評(píng)議法的主要特點(diǎn)是僅對(duì)價(jià)格因素進(jìn)行評(píng)議,不考慮其他因素,報(bào)價(jià)低的投標(biāo)人中標(biāo)。當(dāng)然,這里未考慮的其他因素,實(shí)際上在資格審查時(shí)已獲通過(guò),只不過(guò)不作為評(píng)標(biāo)定標(biāo)時(shí)的考慮因素,因而也不是投標(biāo)人競(jìng)爭(zhēng)成敗的決定性因素。
采用單項(xiàng)評(píng)議法評(píng)標(biāo)定標(biāo),決定成敗的唯一因素是標(biāo)價(jià)的高低。但不能簡(jiǎn)單的認(rèn)為,標(biāo)價(jià)越低越能中標(biāo)。
一般的做法是,通過(guò)對(duì)投標(biāo)書進(jìn)行分析、比較,經(jīng)初審后,篩選出低標(biāo)價(jià),通過(guò)進(jìn)一步的澄清和答辯,經(jīng)終審證明該低標(biāo)價(jià)確實(shí)是切實(shí)可行、措施得當(dāng)?shù)暮侠淼蜆?biāo)價(jià)的,則確定該合理低標(biāo)價(jià)中標(biāo)。合理低標(biāo)價(jià)不一定是最低投標(biāo)價(jià)。
所以,單項(xiàng)評(píng)議法可以是最低投標(biāo)價(jià)中標(biāo),但并不保證最低投標(biāo)價(jià)必然中標(biāo)。 采用單項(xiàng)評(píng)議法對(duì)投標(biāo)報(bào)價(jià)進(jìn)行評(píng)議的方法多種多樣,主要有以下三類具有代表性的模式: (1)將投標(biāo)報(bào)價(jià)與標(biāo)底價(jià)相比較的評(píng)議方法 這種方法是將各投標(biāo)人的投標(biāo)報(bào)價(jià)直接與經(jīng)招標(biāo)投標(biāo)管理機(jī)構(gòu)審定后的標(biāo)底價(jià)相比較,以標(biāo)底價(jià)為基礎(chǔ)來(lái)判斷投標(biāo)報(bào)價(jià)的優(yōu)劣,經(jīng)評(píng)標(biāo)被確認(rèn)為合理低標(biāo)價(jià)的投標(biāo)報(bào)價(jià)即能中標(biāo)。
(2)將各投標(biāo)報(bào)價(jià)相互進(jìn)行比較的評(píng)議方法 從純粹擇優(yōu)的角度看,可以對(duì)投標(biāo)人的投標(biāo)報(bào)價(jià)不做任何限制、不附加任何條件,只將各投標(biāo)人的投標(biāo)報(bào)價(jià)相互進(jìn)行比較,而不與標(biāo)底相比,經(jīng)評(píng)標(biāo)確認(rèn)投標(biāo)報(bào)價(jià)屬最低價(jià)或次低價(jià)的(即為合理低標(biāo)價(jià)的),即可中標(biāo)。 這種對(duì)投標(biāo)報(bào)價(jià)的評(píng)議方法,優(yōu)點(diǎn)是給了投標(biāo)人充分自主報(bào)價(jià)的自由,標(biāo)底的保密性不成問(wèn)題,評(píng)標(biāo)工作也比較簡(jiǎn)單。
不足之處是,招標(biāo)人無(wú)需編制標(biāo)底,或雖有標(biāo)底但形同虛設(shè),不起什么作用,因而導(dǎo)致投標(biāo)人對(duì)投標(biāo)報(bào)價(jià)的預(yù)期和認(rèn)同心中無(wú)數(shù),事實(shí)上處于一種盲目狀態(tài),很難說(shuō)清楚是否科學(xué)、合理。而投標(biāo)人為了中標(biāo)常常會(huì)進(jìn)行竟相壓價(jià)的惡性競(jìng)爭(zhēng),也極易形成串通投標(biāo)。
(3)將投標(biāo)報(bào)價(jià)與標(biāo)底價(jià)結(jié)合投標(biāo)人報(bào)價(jià)因素進(jìn)行比較的評(píng)議方法 這種方法的特點(diǎn),是要借助于一個(gè)可以作為評(píng)標(biāo)定標(biāo)參照物的價(jià)格。這個(gè)在評(píng)標(biāo)定標(biāo)中作為參照物的價(jià)格,是指投標(biāo)報(bào)價(jià)最接近于該價(jià)時(shí)便能中標(biāo)的價(jià)格,我們稱之為“最佳評(píng)標(biāo)價(jià)”。
2綜合評(píng)標(biāo)法 綜合評(píng)議法,是對(duì)價(jià)格、施工組織設(shè)計(jì)(或施工方案)、項(xiàng)目經(jīng)理的資歷和業(yè)績(jī)、質(zhì)量、工期、信譽(yù)和業(yè)績(jī)等因素進(jìn)行綜合評(píng)價(jià)從而確定中標(biāo)人的評(píng)標(biāo)定標(biāo)方法。它是適用最廣泛的評(píng)標(biāo)定標(biāo)方法,各地通常都采用這種方法。
綜合評(píng)議法按具體分析方式的不同,可分為定性綜合評(píng)議法和定量綜合評(píng)議法。 (1)定性綜合評(píng)議法(評(píng)議法) 定性綜合評(píng)議法,又稱評(píng)議法。
通常的做法是,由評(píng)標(biāo)組織對(duì)工程報(bào)價(jià)、工期、質(zhì)量、施工組織設(shè)計(jì)、主要材料消耗、安全保障措施、業(yè)績(jī)、信譽(yù)等評(píng)審指標(biāo),分項(xiàng)進(jìn)行定性比較分析,綜合考慮,經(jīng)評(píng)議后,選出其中被大多數(shù)評(píng)標(biāo)組織成員認(rèn)為各項(xiàng)條件都比較優(yōu)良的投標(biāo)人為中標(biāo)人,也可用記名或無(wú)記名投票表決的方式確定中標(biāo)人。定性評(píng)議法的特點(diǎn)是不量化各項(xiàng)評(píng)審指標(biāo)。
它是一種定性的優(yōu)選法。采用定性綜合評(píng)議法,一般要按從優(yōu)到劣的順序,對(duì)各投標(biāo)人排列名次,排序第一名的既為中標(biāo)人。
但當(dāng)投標(biāo)人超過(guò)一定數(shù)量(如在5家以上)時(shí),可以選擇排序第二名的投標(biāo)人為中標(biāo)人。 采用定性綜合評(píng)議法,有利于評(píng)標(biāo)組織成員之間的直接對(duì)話和交流,能充分反映不同意見(jiàn),在廣泛深入地開(kāi)展討論、分析的基礎(chǔ)上,集中大多數(shù)人的意見(jiàn),一般也比較簡(jiǎn)單易行。
但這種方法,評(píng)議標(biāo)準(zhǔn)彈性較大,衡量的尺度不具體,各人的理解可能會(huì)相去甚遠(yuǎn),造成評(píng)標(biāo)意見(jiàn)懸殊過(guò)大,會(huì)使評(píng)標(biāo)決策左右為難,不能讓人信服。 (2)定量綜合評(píng)議法(打分法、百分法) 定量綜合評(píng)議法,又稱打分法、百分制計(jì)分評(píng)議法(百分法)。
通常的做法是,事先在招標(biāo)文件或評(píng)標(biāo)定標(biāo)辦法中將評(píng)標(biāo)的內(nèi)容進(jìn)行分類,形成若干評(píng)價(jià)因素,并確定各項(xiàng)評(píng)價(jià)因素在百分之內(nèi)所占的比例和評(píng)分標(biāo)準(zhǔn),開(kāi)標(biāo)后由評(píng)標(biāo)組織中的每位成員按照評(píng)分規(guī)則,采用無(wú)記名方式打分,最后統(tǒng)計(jì)投標(biāo)人的得分,得分最高者(排序第一名)或次高者(排序第二名)為中標(biāo)人。 采用定量綜合評(píng)議法,原則上實(shí)行得分最高的投標(biāo)人為中標(biāo)人。
但當(dāng)招標(biāo)工程在一定限額(如1000萬(wàn)元)以上,最高得分者和次高得分者的總得分差距不大(如差距僅在2分之內(nèi)),且次高得分者的報(bào)價(jià)比最高得分者的報(bào)價(jià)低到一定數(shù)額(如低2%以上)的,可以選擇次高得分者為中標(biāo)人。對(duì)此,在制定評(píng)標(biāo)定標(biāo)辦法時(shí),應(yīng)作出詳盡說(shuō)明。
定量綜合評(píng)議法的主要特點(diǎn)是要量化各評(píng)審因素。對(duì)各評(píng)審因素的量化是一個(gè)比較復(fù)雜的問(wèn)題,各地的做法不盡相同。
從理論上講,評(píng)標(biāo)因素指標(biāo)的設(shè)置和評(píng)分標(biāo)準(zhǔn)分值的分配,應(yīng)充分體現(xiàn)企業(yè)的整體素質(zhì)和綜合實(shí)力,準(zhǔn)確反映公開(kāi)、公平、公正的竟標(biāo)法則,使質(zhì)量好、信譽(yù)高、價(jià)格合理、技術(shù)強(qiáng)、方案優(yōu)的企業(yè)能中標(biāo)。 3合理單價(jià)評(píng)標(biāo)法 “合理低價(jià)評(píng)標(biāo)法”應(yīng)該是“最低價(jià)中標(biāo)”評(píng)標(biāo)法的一次揚(yáng)棄,存其優(yōu)化競(jìng)爭(zhēng)的一面,棄。
代碼走查(code walkthrough)和代碼審查(code inspection)是兩種不同的代碼評(píng)審方法,
代碼審查是一種正式的評(píng)審活動(dòng),而代碼走查的討論過(guò)程是非正式的。
最近對(duì)項(xiàng)目組進(jìn)行代碼評(píng)審,發(fā)覺(jué)需要對(duì)代碼評(píng)審中找到的問(wèn)題進(jìn)行一下分類,大概可以分成以下幾類問(wèn)題:
1. Comment
注釋沒(méi)寫,或者格式不對(duì),或者毫無(wú)意義
2. Coding Standard
沒(méi)遵守代碼規(guī)范
3. Existing Wheel
重復(fù)現(xiàn)成的代碼,或者是開(kāi)源項(xiàng)目,或者公司已有代碼
4. Better practice
Java或者開(kāi)源項(xiàng)目,有更好的寫法
5. Performance bottle and Improvement
性能瓶頸和提高
6. Code Logic Error
代碼邏輯錯(cuò)誤
7. Business Logic Error
業(yè)務(wù)邏輯錯(cuò)誤
代碼審查列出問(wèn)題的類型,并有解決情況報(bào)告
1、根據(jù)《評(píng)標(biāo)委員會(huì)和評(píng)標(biāo)方法暫行規(guī)定(國(guó)家發(fā)展計(jì)劃委員會(huì)、國(guó)家經(jīng)濟(jì)貿(mào)易委員會(huì)、建設(shè)部、鐵道部、交通部、信息產(chǎn)業(yè)部、中水利部令第12號(hào))》規(guī)定:
“第二十九條 評(píng)標(biāo)方法包括經(jīng)評(píng)審的最低投標(biāo)價(jià)法、綜合評(píng)估法或者法律、行政法規(guī)允許的其他評(píng)標(biāo)方法。”
2、根據(jù)上文,評(píng)標(biāo)方法分為最低投標(biāo)價(jià)法、綜合評(píng)估法兩大類。實(shí)際應(yīng)用的各種評(píng)標(biāo)方法多種多樣,基本屬于以上兩類。其中最低投標(biāo)價(jià)法定義簡(jiǎn)單、明確。而綜合評(píng)估法設(shè)定方法多種多樣,內(nèi)容繁多,體現(xiàn)形式也各有不同。
3、抽簽法等不能體現(xiàn)競(jìng)爭(zhēng)、擇優(yōu)評(píng)標(biāo)方法,不屬于法律認(rèn)可范圍。
代碼走查(code walkthrough)和代碼審查(code inspection)是兩種不同的代碼評(píng)審方法,
代碼審查是一種正式的評(píng)審活動(dòng),而代碼走查的討論過(guò)程是非正式的。
最近對(duì)項(xiàng)目組進(jìn)行代碼評(píng)審,發(fā)覺(jué)需要對(duì)代碼評(píng)審中找到的問(wèn)題進(jìn)行一下分類,大概可以分成以下幾類問(wèn)題:
1. Comment
注釋沒(méi)寫,或者格式不對(duì),或者毫無(wú)意義
2. Coding Standard
沒(méi)遵守代碼規(guī)范
3. Existing Wheel
重復(fù)現(xiàn)成的代碼,或者是開(kāi)源項(xiàng)目,或者公司已有代碼
4. Better practice
Java或者開(kāi)源項(xiàng)目,有更好的寫法
5. Performance bottle and Improvement
性能瓶頸和提高
6. Code Logic Error
代碼邏輯錯(cuò)誤
7. Business Logic Error
業(yè)務(wù)邏輯錯(cuò)誤
代碼審查列出問(wèn)題的類型,并有解決情況報(bào)告
什么是Code Review?
Code Review代碼評(píng)審是指在軟件開(kāi)發(fā)過(guò)程中,通過(guò)對(duì)源代碼進(jìn)行系統(tǒng)性檢查的過(guò)程。通常的目的是查找各種缺陷,包括代碼缺陷、功能實(shí)現(xiàn)問(wèn)題、編碼合理性、性能優(yōu)化等;保證軟件總體質(zhì)量和提高開(kāi)發(fā)者自身水平。 Code Review是輕量級(jí)代碼評(píng)審,相對(duì)于正式代碼評(píng)審,輕量級(jí)代碼評(píng)審所需要的各種成本要明顯低得多,如果流程正確,它可以起到更加積極的效果。正因如此,輕量級(jí)代碼評(píng)審經(jīng)常性地被引入到軟件開(kāi)發(fā)過(guò)程中。
為什么Code Review?
1. 提高代碼質(zhì)量。
2. 及早發(fā)現(xiàn)潛在缺陷,降低修改/彌補(bǔ)缺陷的成本。
3. 促進(jìn)團(tuán)隊(duì)內(nèi)部知識(shí)共享,提高團(tuán)隊(duì)整體水平。
4. 評(píng)審過(guò)程對(duì)于評(píng)審人員來(lái)說(shuō),也是一種思路重構(gòu)的過(guò)程。幫助更多的人理解系統(tǒng)。
5. 是一個(gè)傳遞知識(shí)的手段,可以讓其它并不熟悉代碼的人知道作者的意圖和想法,從而可以在以后輕松維護(hù)代碼。
6. 鼓勵(lì)程序員們相互學(xué)習(xí)對(duì)方的長(zhǎng)處和優(yōu)點(diǎn)。
7. 可以被用來(lái)確認(rèn)自己的設(shè)計(jì)和實(shí)現(xiàn)是一個(gè)清楚和簡(jiǎn)單的。
評(píng)審尤其是同行評(píng)審,是提前發(fā)現(xiàn)缺陷,降低開(kāi)發(fā)成本的有效方法;但是很多企業(yè)并不重視,或者效果不佳。
原因有很多:沒(méi)有獲得合適的專家、組織不合理、方法不當(dāng)?shù)取a槍?duì)代碼評(píng)審,我想簡(jiǎn)單地談幾點(diǎn)(其實(shí)其它工程文檔的評(píng)審存在同樣問(wèn)題):1、評(píng)審要計(jì)劃。
因?yàn)榇蠹叶己苊Γ黝I(lǐng)域的專家也都有各自的工作,評(píng)審結(jié)果的好壞對(duì)他們工作績(jī)效沒(méi)有影響,所以專家投入多少精力來(lái)用于評(píng)審不受控,完全靠他們自己的職業(yè)精神。 所以,這就要求項(xiàng)目經(jīng)理比較有影響力,能夠爭(zhēng)取到足夠的、合適的專家來(lái)參與評(píng)審。
專家最好要提前協(xié)調(diào),當(dāng)然項(xiàng)目經(jīng)理首先要知道要請(qǐng)哪些專家(如系統(tǒng)專家、領(lǐng)域?qū)<摇y(cè)試人員、QA等),這些專家在哪里?能否獲得專家資源的支持,是項(xiàng)目經(jīng)理的項(xiàng)目管理能力一個(gè)重要體現(xiàn)。評(píng)審時(shí)間的投入比例,一般是第一次版本準(zhǔn)備時(shí)間的3/5以上。
2、評(píng)審要分層次和重點(diǎn)。作為項(xiàng)目成員,在代碼編寫完成后,首先是自檢,這時(shí)發(fā)現(xiàn)的缺陷不計(jì)算;然后是項(xiàng)目組內(nèi)的評(píng)審,這時(shí)發(fā)現(xiàn)的缺陷應(yīng)計(jì)算;最后才是外部評(píng)審。
應(yīng)提前把相關(guān)文檔和代碼交給評(píng)審專家,讓他們各自評(píng)審;根據(jù)項(xiàng)目和評(píng)審結(jié)果的情況,決定是否召開(kāi)評(píng)審會(huì)議,評(píng)審會(huì)議以確認(rèn)問(wèn)題為主,而不是討論解決方案。對(duì)于重要的核心的代碼,要投入重點(diǎn)評(píng)審力量;另外,對(duì)于能力不足的成員所完成的代碼,也要重點(diǎn)評(píng)審。
每個(gè)角色也應(yīng)明白各自評(píng)審重點(diǎn),如QA重點(diǎn)放在編程規(guī)范、測(cè)試人員側(cè)重在可測(cè)性、系統(tǒng)專家側(cè)重在從整體來(lái)考慮(如對(duì)其它功能的影響、性能等)。3、問(wèn)題的確認(rèn)與跟蹤。
評(píng)審專家發(fā)現(xiàn)問(wèn)題后,首先與該代碼的完成人進(jìn)行確認(rèn),如果大家達(dá)成一致認(rèn)可這個(gè)問(wèn)題,然后由代碼完成人提出解決方案,這個(gè)解決方案要得到問(wèn)題發(fā)現(xiàn)者的同意,然后編程人員編碼實(shí)現(xiàn)該方案,并進(jìn)行測(cè)試和驗(yàn)證,并將驗(yàn)證結(jié)果提交問(wèn)題發(fā)現(xiàn)人,問(wèn)題發(fā)現(xiàn)人確認(rèn)無(wú)誤后,該問(wèn)題就可關(guān)閉。所以,評(píng)審專家發(fā)現(xiàn)問(wèn)題后并沒(méi)有結(jié)束,而是要負(fù)責(zé)跟蹤該問(wèn)題。
總之,評(píng)審活動(dòng)的組織其實(shí)比較復(fù)雜,也是項(xiàng)目經(jīng)理項(xiàng)目管理能力的一個(gè)重要體現(xiàn),項(xiàng)目經(jīng)理對(duì)評(píng)審活動(dòng)負(fù)有重要責(zé)任。
首先,我們先來(lái)看看Code Reivew的用處:
Code reviews 中,可以通過(guò)大家的建議增進(jìn)代碼的質(zhì)量。
Code reviews 是一個(gè)傳遞知識(shí)的手段,可以讓其它并不熟悉代碼的人知道作者的意圖和想法,從而可以在以后輕松維護(hù)代碼。
Code reviews 也鼓勵(lì)程序員們相互學(xué)習(xí)對(duì)方的長(zhǎng)處和優(yōu)點(diǎn)。
Code reviews 也可以被用來(lái)確認(rèn)自己的設(shè)計(jì)和實(shí)現(xiàn)是一個(gè)清楚和簡(jiǎn)單的。
你也許注意到了在上面的Code Reivew中的諸多用處中,我們沒(méi)有提到可以幫助找到程序的bug和保證代碼風(fēng)格和編碼標(biāo)準(zhǔn)。這是因?yàn)槲覀冋J(rèn)為:
Code reviews 不應(yīng)該承擔(dān)發(fā)現(xiàn)代碼錯(cuò)誤的職責(zé)。Code Review主要是審核代碼的質(zhì)量,如可讀性,可維護(hù)性,以及程序的邏輯和對(duì)需求和設(shè)計(jì)的實(shí)現(xiàn)。代碼中的bug和錯(cuò)誤應(yīng)該由單元測(cè)試,功能測(cè)試,性能測(cè)試,回歸測(cè)試來(lái)保證的(其中主要是單元測(cè)試,因?yàn)槟鞘亲罱咏麭ug,也是Bug沒(méi)有擴(kuò)散的地方)
Code reviews 不應(yīng)該成為保證代碼風(fēng)格和編碼標(biāo)準(zhǔn)的手段。編碼風(fēng)格和代碼規(guī)范都屬于死的東西,每個(gè)程序員在把自己的代碼提交團(tuán)隊(duì)Review的時(shí)候,代碼就應(yīng)該是符合規(guī)范的,這是默認(rèn)值,屬于每個(gè)人自己的事情,不應(yīng)該交由團(tuán)隊(duì)來(lái)完成,否則只會(huì)浪費(fèi)大家本來(lái)就不夠的時(shí)間。我個(gè)人認(rèn)為“meeting”是奢侈的,因?yàn)槟切枰蠹以谕粫r(shí)刻都擠出時(shí)間,所以應(yīng)該用在最需要的地方。代碼規(guī)范比起程序的邏輯和對(duì)需求設(shè)計(jì)的實(shí)現(xiàn)來(lái)說(shuō),太不值得讓大家都來(lái)了。
10年前,上面這兩件事會(huì)是理所當(dāng)然的(10年前的中國(guó)的軟件開(kāi)發(fā)還沒(méi)有Code Reivew呢),今天,在中國(guó)的很多公司上面這兩件事依然被認(rèn)為是Code Reivew最重要的事,所以,我能夠看到很多開(kāi)發(fā)Team抱怨Code Review就是一個(gè)形式,費(fèi)時(shí)費(fèi)力不說(shuō),發(fā)現(xiàn)的問(wèn)題還不如測(cè)試,而評(píng)審者們除了在代碼風(fēng)格上有些見(jiàn)術(shù),別的也就沒(méi)什么用了,長(zhǎng)而久之,大家都會(huì)開(kāi)始厭煩這個(gè)事了。
所以,在今天,請(qǐng)不要把上面的那兩件事分散了Code Review的注意力,取而代之的是,對(duì)于Bug,程序的作者要在Review前提交自己的單元測(cè)試報(bào)告(如:XUnit的測(cè)試結(jié)果),對(duì)于代碼規(guī)范,這是程序作者自己需要保證的,而且,有一些工具是可以幫你來(lái)檢查代碼規(guī)范的。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁(yè)面生成時(shí)間:2.953秒