原創(chuàng)|行業(yè)資訊|編輯:龔雪|2016-02-18 12:40:21.000|閱讀 168 次
概述:C/C++程序員的工作面臨著比其他語言的程序員不同的挑戰(zhàn)和領(lǐng)域。真正的新項(xiàng)目中使用C++是罕見的。如今C++項(xiàng)目通常涉及修改或現(xiàn)有系統(tǒng)的延伸。為一個(gè)新的應(yīng)用程序重構(gòu)可用的代碼,或用新的方法整合現(xiàn)有模塊。最常見的是,一個(gè)團(tuán)隊(duì)從不同的組,外部供應(yīng)商/承包商或開源社區(qū)中得到了一堆C或C ++代碼。這些項(xiàng)目必然需要大量修改一些不匹配的代碼,使得它們可以使用。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
本文中,我們將要研究正確性、一致性和監(jiān)控多種技術(shù)。當(dāng)不同團(tuán)隊(duì)的程序員在頂級的代碼基礎(chǔ)上開發(fā),會減少錯(cuò)誤的風(fēng)險(xiǎn),還可以提高項(xiàng)目的穩(wěn)定性和質(zhì)量。如何做:
在不執(zhí)行的情況下,想搞清楚一個(gè)bug,或者想了解性能,靜態(tài)分析的意義是非常重大的。這是代碼審查的基石——用頭腦閱讀和理解代碼,并用眼睛找出其中的缺陷。同行代碼審查是查找代碼缺陷的最佳方法,可以平均除去60%的缺陷,最高可達(dá)到90%。
正確實(shí)現(xiàn)自動化的靜態(tài)分析能有效地在短時(shí)間內(nèi)識別代碼的缺點(diǎn)和錯(cuò)誤。例如,一個(gè)經(jīng)常會遇到的錯(cuò)誤是:沒有意識到浮點(diǎn)數(shù)不能與操作符相比,不同的是,整數(shù)或類可以執(zhí)行操作符:
bool SetClient::contains(double d, SetType & h) { for (SetType::const_iterator it = h.begin(); it != h.end(); ++it) { // Pointer to a double of value d? if (*((double*)((*it)->getValue())) == d) { return true; } } return false; }
原文翻譯自:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn