代碼檢查,怎么說呢?經(jīng)驗而言,我挺喜歡用的。因為,跟項目經(jīng)理(或設(shè)計人員)讀設(shè)計,能夠非常容易發(fā)現(xiàn)設(shè)計上的邏輯錯誤或遺漏的問題等等。因此,有必要好好敘述下。
⊙定義上:所謂的代碼檢查,其實就是以組為單位閱讀代碼,是一系列規(guī)程和錯誤檢查技術(shù)的集合。該過程通常將注意力集中在發(fā)現(xiàn)錯誤上,而不是糾正錯誤。
⊙成員組成:一個代碼檢查小組通常是由四人組成,其中一人發(fā)揮著協(xié)調(diào)作用、一人是該程序的編碼人員、一人是其他成員通常是程序的設(shè)計人員、一人是測試專家。
這里,值得一提的是:那個發(fā)揮著協(xié)調(diào)作用的成員。該協(xié)調(diào)人應(yīng)該是個稱職的程序員,但不是該程序的編碼人員,不需要對程序的細(xì)節(jié)了解得很清楚。協(xié)調(diào)人的職責(zé)包括幾點:為代碼檢查分發(fā)材料、安排進(jìn)程;在代碼檢查中起主導(dǎo)作用;記錄發(fā)現(xiàn)的所有錯誤;確保所有錯誤隨后得到改正。
有關(guān)代碼檢查的具體流程,個人歸納為一個流程表,就不在這里詳述了。不過,這里需要值得注意的是代碼檢查這個過程。
1.在代碼檢查的時間和地點上的選擇上,應(yīng)避免所有的外部干擾;
2.代碼檢查會議的理想時間應(yīng)在90-120分鐘之內(nèi);
3.大多數(shù)的代碼檢查都是按每小時大約閱讀150行代碼的速度進(jìn)行;
4.對大型軟件的檢查應(yīng)安排多個代碼檢查會議同時進(jìn)行,每個代碼檢查會議處理一個或幾個模塊或子程序。
除此之外,還需要從心理學(xué)角度給予提前的心理籌備。因為,要使檢查過程有成效,還必須樹立正確的態(tài)度。其心理因素必須要提前分析正確,否則事倍功半。假設(shè)程序員將代碼檢查視為對其個人的攻擊、采取了防范的態(tài)度,那么檢查過程就不會有效果。而正確的做法應(yīng)該是:
⊙一方面:提出的建議應(yīng)針對程序本身,而不應(yīng)針對程序員,即:軟件中存在的錯誤不應(yīng)被視為編寫程序的人員本身的弱點,且這些錯誤應(yīng)被看做是伴隨著軟件開發(fā)的艱難性所固有的;
⊙另一方面:程序員必須懷著非自我本位的態(tài)度來對待錯誤檢查,對整個過程采取積極和建設(shè)性的態(tài)度:代碼檢查的目標(biāo)是發(fā)現(xiàn)程序中的錯誤,從而改進(jìn)程序的質(zhì)量。
正因為這個原因,大多數(shù)人建議應(yīng)對代碼檢查的結(jié)果進(jìn)行保密,僅限于參與者范圍內(nèi)部。尤其是如果管理人員想利用代碼檢查的結(jié)果,那么就與檢查過程的目的背道而馳了。
文尾,順便提一下代碼檢查附帶的幾個有益的作用吧。
⊙程序員通常會得到編程風(fēng)格、算法選擇及編譯技術(shù)等方面的反饋信息;⊙其他參與者也可以通過接觸其他程序員的錯誤和編程風(fēng)格而同樣受益匪淺;
⊙代碼檢查還是早期發(fā)現(xiàn)程序中最易出錯部分的方法之一,有助于在基于計算機的測試過程中將更多的注意力集中在這些地方。
⊙定義上:所謂的代碼檢查,其實就是以組為單位閱讀代碼,是一系列規(guī)程和錯誤檢查技術(shù)的集合。該過程通常將注意力集中在發(fā)現(xiàn)錯誤上,而不是糾正錯誤。
⊙成員組成:一個代碼檢查小組通常是由四人組成,其中一人發(fā)揮著協(xié)調(diào)作用、一人是該程序的編碼人員、一人是其他成員通常是程序的設(shè)計人員、一人是測試專家。
這里,值得一提的是:那個發(fā)揮著協(xié)調(diào)作用的成員。該協(xié)調(diào)人應(yīng)該是個稱職的程序員,但不是該程序的編碼人員,不需要對程序的細(xì)節(jié)了解得很清楚。協(xié)調(diào)人的職責(zé)包括幾點:為代碼檢查分發(fā)材料、安排進(jìn)程;在代碼檢查中起主導(dǎo)作用;記錄發(fā)現(xiàn)的所有錯誤;確保所有錯誤隨后得到改正。
有關(guān)代碼檢查的具體流程,個人歸納為一個流程表,就不在這里詳述了。不過,這里需要值得注意的是代碼檢查這個過程。
1.在代碼檢查的時間和地點上的選擇上,應(yīng)避免所有的外部干擾;
2.代碼檢查會議的理想時間應(yīng)在90-120分鐘之內(nèi);
3.大多數(shù)的代碼檢查都是按每小時大約閱讀150行代碼的速度進(jìn)行;
4.對大型軟件的檢查應(yīng)安排多個代碼檢查會議同時進(jìn)行,每個代碼檢查會議處理一個或幾個模塊或子程序。
除此之外,還需要從心理學(xué)角度給予提前的心理籌備。因為,要使檢查過程有成效,還必須樹立正確的態(tài)度。其心理因素必須要提前分析正確,否則事倍功半。假設(shè)程序員將代碼檢查視為對其個人的攻擊、采取了防范的態(tài)度,那么檢查過程就不會有效果。而正確的做法應(yīng)該是:
⊙一方面:提出的建議應(yīng)針對程序本身,而不應(yīng)針對程序員,即:軟件中存在的錯誤不應(yīng)被視為編寫程序的人員本身的弱點,且這些錯誤應(yīng)被看做是伴隨著軟件開發(fā)的艱難性所固有的;
⊙另一方面:程序員必須懷著非自我本位的態(tài)度來對待錯誤檢查,對整個過程采取積極和建設(shè)性的態(tài)度:代碼檢查的目標(biāo)是發(fā)現(xiàn)程序中的錯誤,從而改進(jìn)程序的質(zhì)量。
正因為這個原因,大多數(shù)人建議應(yīng)對代碼檢查的結(jié)果進(jìn)行保密,僅限于參與者范圍內(nèi)部。尤其是如果管理人員想利用代碼檢查的結(jié)果,那么就與檢查過程的目的背道而馳了。
文尾,順便提一下代碼檢查附帶的幾個有益的作用吧。
⊙程序員通常會得到編程風(fēng)格、算法選擇及編譯技術(shù)等方面的反饋信息;⊙其他參與者也可以通過接觸其他程序員的錯誤和編程風(fēng)格而同樣受益匪淺;
⊙代碼檢查還是早期發(fā)現(xiàn)程序中最易出錯部分的方法之一,有助于在基于計算機的測試過程中將更多的注意力集中在這些地方。