代碼檢查工具 什么樣的代碼叫好代碼?
什么樣的代碼叫好代碼?好的代碼,滿足兩個(gè)條件:能達(dá)到預(yù)期效果,容易理解。代碼的不同不在于功能能否實(shí)現(xiàn),而主要在于實(shí)現(xiàn)的質(zhì)量。有些代碼雖然實(shí)現(xiàn)了效果,但另一個(gè)程序員看不懂,無法維護(hù),也是壞代碼?,F(xiàn)在在軟
什么樣的代碼叫好代碼?
好的代碼,滿足兩個(gè)條件:能達(dá)到預(yù)期效果,容易理解。
代碼的不同不在于功能能否實(shí)現(xiàn),而主要在于實(shí)現(xiàn)的質(zhì)量。
有些代碼雖然實(shí)現(xiàn)了效果,但另一個(gè)程序員看不懂,無法維護(hù),也是壞代碼。
現(xiàn)在在軟件行業(yè),程序員加班是很常見的。疲勞將不可避免地影響代碼的質(zhì)量。
他們大多急于達(dá)到職能要求,完成領(lǐng)導(dǎo)安排的任務(wù),只以完成為目標(biāo)。
這種不考慮長遠(yuǎn)的工作方式在短時(shí)間內(nèi)實(shí)現(xiàn)了目標(biāo),但從長遠(yuǎn)來看是個(gè)大問題。
一旦程序員離開,新來的人需要很長時(shí)間才能接手。項(xiàng)目的可擴(kuò)展性和穩(wěn)定性沒有保證。
尤其是一些外行領(lǐng)導(dǎo)只知道如何為上級(jí)做貢獻(xiàn),不能科學(xué)安排時(shí)間。
功能需求一經(jīng)更改就立即更改,新功能即將出現(xiàn)。因此,工程設(shè)計(jì)不斷調(diào)整,整體建筑穩(wěn)定性受損。
整個(gè)行業(yè)還沒有意識(shí)到代碼質(zhì)量的重要性,也沒有對(duì)代碼的敬畏。它只著眼于現(xiàn)在而忽視了長遠(yuǎn)。
只有行業(yè)人員達(dá)到飽和,淘汰不合格的程序員和產(chǎn)品經(jīng)理,好的代碼才能形成趨勢(shì)。
coverity原理?
Coverage是一個(gè)代碼靜態(tài)檢查工具,可以檢測(cè)代碼問題。而且檢測(cè)結(jié)果會(huì)反映在HTML頁面上
coverage支持更完整的代碼安全檢測(cè),也支持代碼質(zhì)量檢測(cè)和規(guī)則檢測(cè),支持更多的語言
很多都是通用的,比如findbugs,checkstyle,PMD,sourcemonitor for checking cycle complexity,simian用于檢查代碼的可重復(fù)性,感染用于檢查體系結(jié)構(gòu),當(dāng)然還有codec。一般來說,我們公司會(huì)要求為每個(gè)單獨(dú)級(jí)別的構(gòu)建清除findbugs和PMD,但對(duì)checkstyle沒有要求。這是一個(gè)代碼訪問控制,不清楚的代碼不能提交。以上列出的所有工具都需要在每次構(gòu)建時(shí)進(jìn)行檢查。這是每日生成的靜態(tài)檢查內(nèi)容。如果靜態(tài)檢查問題沒有被清除,那么每次版本發(fā)布都需要靜態(tài)檢查清除報(bào)告,這是非常痛苦的更改。例如,codecc中的覆蓋和加強(qiáng)檢查非常嚴(yán)格,基本上清除了掃描的所有問題。通常,空指針和SQL注入不會(huì)有問題。