代碼審計報告_第1頁
代碼審計報告_第2頁
代碼審計報告_第3頁
代碼審計報告_第4頁
代碼審計報告_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

代碼審查報告xxxx公司

版本信息文檔標記:目前版本:目前狀態(tài):初稿公布日期:公布修改歷史日期版本作者修改內(nèi)容評審號變更控制號評審對象審查員項目名稱審查日期分類重要性檢查項備注命名重要命名規(guī)則與否與所采用的規(guī)范保持一致?組員變量,辦法參數(shù)等需要使用首字母小寫,其它單詞首字母大寫的命名方式,嚴禁使用下劃線(_)數(shù)字等方式命名

不要出現(xiàn)局部變量,組員變量大寫字母開頭等問題普通與否遵照了最小長度最多信息原則?多種命名盡量短,表意精確,除2替代‘to’,4替代‘for’外,不建議使用數(shù)字在命名中重要has/can/is前綴的函數(shù)與否返回布爾型?組員變量,辦法參數(shù),局部變量等為布爾型時,如果出現(xiàn)has/can/is開頭,則將這些詞去掉重要類名與否存在重名問題?自己實現(xiàn)的類盡量不要和別人的類重名,盡管不在同一種包下,特別是子類和父類重名的狀況注釋重要注釋與否較清晰且必要?辦法JAVADOC注釋中需要闡明各參數(shù)、返回值及異常闡明,參數(shù)闡明需按照參數(shù)名稱及用意對應(yīng)標注重要復(fù)雜的分支流程與否已經(jīng)被注釋?普通距離較遠的}與否已經(jīng)被注釋?重要函數(shù)與否已有文檔注釋?(功效、輸入、返回及其它可選)文獻,類(含接口,枚舉等),組員變量,辦法前需要有JAVADOC的注釋普通特殊使用方法與否被注釋?聲明、空白、縮進普通每行與否只聲明了一種變量?(特別是那些可能出錯的類型)重要變量與否已經(jīng)在定義的同時初始化?重要類屬性與否都執(zhí)行了初始化?普通代碼段落與否被適宜地以空行分隔?普通與否合理地使用了空格使程序更清晰?基本代碼格式中的空格符不可缺少,這些空格出現(xiàn)在,:,+,-,*,/,=,==,>,<,>=,<=,!=,及多種括號附近提示代碼行長度與否在規(guī)定之內(nèi)?每行不得超出120個字符重要controller,service,?dao?中不要聲明有狀態(tài)的變量。此變量不能被修改。如果要進行修改,必須通過鎖進行控制。普通折行與否恰當?普通集合與否被定義為泛型類型?定義集合時,建議定義其泛型類型,減少類型轉(zhuǎn)換和警告錯誤語句/功效分布/規(guī)模普通包含復(fù)合語句的{}與否成對出現(xiàn)并符合規(guī)范?重要與否給單個的循環(huán)、條件語句也加了{}?if,else,else?if,while,for,case等代碼塊必須用{}包圍普通單個變量與否只做單個用途?重要單行與否只有單個功效?(不要使用;進行多行合并)重要單個函數(shù)與否執(zhí)行了單個功效并與其命名相符?普通操作符++和—?—操作符的應(yīng)用與否符合規(guī)范?規(guī)模重要單個函數(shù)不超出規(guī)定行數(shù)?重要縮進層數(shù)與否不超出規(guī)定?可靠性(總則/變量和語句)重要與否已經(jīng)消除了全部警告?開發(fā)工具的警告重要常數(shù)變量與否聲明為final?重要對象使用前與否進行了檢查?重要組員變量,局部變量與否在使用前被賦值?對象初始化為null的對象被調(diào)用前必須被重新賦值,如果賦值語句在try塊中,調(diào)用操作必須在try塊中普通局部對象變量使用后與否被復(fù)位為NULL?特別是?數(shù)組?集合?Map重要對數(shù)組的訪問與否是安全的?(正當?shù)膇ndex取值為[0,?MAX_SIZE-1])。重要與否確認沒有同名變量局部重復(fù)定義問題嚴禁局部變量名稱和類或?qū)ο蠼M員變量同名普通程序中與否只使用了簡樸的體現(xiàn)式?重要與否已經(jīng)用()使操作符優(yōu)先級明確化?重要全部判斷與否都使用了(常量==變量?或者?常量.equals(變量))的形式?常量放在比較符前能夠有效減少比較符寫成賦值語句?,減少空指針異常重要與否每個if-else?if-else語句都有最后一種else以確保解決了全集?重要與否每個switch-case語句都有最后一種default以確保解決了全集?普通for循環(huán)與否都使用了包含下限不包含上限的形式?(k=0;?k<MAX)重要XML標記書寫與否完整,字符串的拼寫與否對的重要對于流操作代碼的異常捕獲與否有finally操作以關(guān)閉流對象關(guān)閉前需要判斷?流對象與否為空?提示退出代碼段時與否對臨時對象做了釋放解決重要對浮點數(shù)值的相等判斷與否是恰當?shù)??嚴禁使?=直接判斷浮點數(shù)值?。提供通用辦法重要與否對象比較都使用了equals?對象(涉及包裝類)比較必須使用equals,而不是使用==或!=操作重要使用equals進行比較時與否確保比較的兩個對象類型一致?equals辦法比較的對象在對象類型擬定的前提下,建議是同一類型的,例如Integer和""使用equals是不倡導(dǎo)的普通操作Map或Properties構(gòu)造對象,用于傳值時與否將Key定義為常量?Session,Request等對象的setAttribute,getAttribute辦法的key建議使用常量,不得手工輸入字符串重要與否在類型轉(zhuǎn)換前確保了類型的兼容?除非明確確保對象類型重要包裝類做簡樸預(yù)算前與否確保非空??建議都使用包裝類。包裝類進行操作前,建議進行非空(null?!=?xx)判斷,避免發(fā)生空指針異常重要對象屬性在使用前與否確保被精確賦值?只讀屬性(只提供get辦法的組員變量)除非特意返回固定值,否則必須提供set辦法或在其它辦法調(diào)用時將其賦值重要辦法調(diào)用前與否有非空判斷?對參數(shù)的非空判斷必須出現(xiàn)在辦法調(diào)用之前,否則闡明前面可能造成空指針或者后者判斷是沒有必要的,非空判斷,默認由調(diào)用者提供重要非線程安全的對象與否被對的確保線程安全?DateFormat實例的format辦法調(diào)用不是線程安全,類似的狀況不適合使用static定義,建議使用ThreadLocal方式實現(xiàn),參看UnifiedCodeGenerator普通相似用意的組員變量與否使用了相似的命名?不同實體Entity、VO、BO之間表達同一含義的組員變量,建議使用相似的名稱,盡量不要出現(xiàn),有的地方用username,有的地方用userName這樣的狀況可靠性(函數(shù))重要入口對象與否都被進行了判斷不為空?重要入口數(shù)據(jù)的正當范疇與否都被進行了判斷?重要與否對有異常拋出的辦法都執(zhí)行了try...catch保護?重要與否函數(shù)的全部分支都有返回值?重要int的返回值與否合理?(負值為失敗,非負值成功)普通對于重復(fù)進行了int返回值判斷與否認義了函數(shù)來解決?普通核心代碼與否做了捕獲異常解決普通字典表定義與否用枚舉,或者有一種統(tǒng)一的定義?重要與否對辦法返回值對象做了null檢查,該返回值定義時與否被初始化重要與否對同時對象的遍歷訪問做了代碼同時重要與否確認在對Map對象使用迭代遍歷過程中沒有做增減元素操作?Map遍歷時執(zhí)行增減元素操作將拋出ConcurrentModificationException,對集合對象遍歷時建議都不要進行增減元素操作。重要線程解決函數(shù)循環(huán)內(nèi)部與否有異常捕獲解決,避免線程拋出異常而退出重要原子操作代碼異常中斷,使用的有關(guān)外部變量與否恢復(fù)先前狀態(tài)重要函數(shù)對錯誤的解決是恰當?shù)??重要異常捕獲后與否進行了日志統(tǒng)計或異常繼續(xù)拋出?異常捕獲后如果無法解決需要繼續(xù)拋出,如果能夠解決,建議將異常日志進行統(tǒng)計重要與否構(gòu)造辦法中不調(diào)用目前對象的構(gòu)造辦法嚴禁在構(gòu)造辦法中new一種目前對象可維護性重要實當代碼中與否消除了直接常數(shù)?(用于計數(shù)起點的簡樸常數(shù)例外)重要與否消除了造成構(gòu)造含糊的持續(xù)賦值?(如a=?(b=d+c?))重要與否對的使用了日志統(tǒng)計普通與否有冗余判斷語句?(如:if?(b)?return?true;?else?return?false;)“if?(b)?return?true;?else?return?false;”==》“return?b;”;嚴禁使用類似“if/while(體現(xiàn)式?==?true)或if/while(體現(xiàn)式?==?false)”的判斷重要與否把辦法中的重復(fù)代碼抽象成私有函數(shù)代碼警告普通與否去除了多出導(dǎo)入的包或類?重要與否去除了只定義未使用的局部變量?嚴禁局部變量被定義或者初始化而未被使用,這種狀況需要刪除該局部變量普通與否將魔鬼數(shù)字修改為常量使用?不允許直接使用除-2,-1,0,1,2,3,4,5,6,7,8,9,10外的數(shù)字,除另外的數(shù)字需要定義常量使用提示常量定義與否為static?final格式?常量定義格式為public/protected//private?static?final?Type?TYPE,static和final次序要保持一致提示實現(xiàn)序列化的對象與否認義了serialVersionUID?建議實現(xiàn)Serializable的類需要增加“private?static?final?long?serialVersionUID?=?1L;”可讀性普通與否用if?else構(gòu)造替代了三元運算符?體現(xiàn)式復(fù)雜狀況下?不要使用(flagexp1:exp2)語句,該語句需要修改為if?else構(gòu)造普通代碼注釋率與否結(jié)余30%~60%之間?代碼注釋率應(yīng)落在30%~60%之間性能重要日志統(tǒng)計的Log,Logger對象與否認義為常量?用于統(tǒng)計日志的Log,Logger對象在類中定義必須是static?final的,建議定義為private的,由于這類對象初始化比較耗時,不利系統(tǒng)運行日志重要打印信息與否都用日志管理?代碼中建議不要使用打印信息,只有在系統(tǒng)啟動或系統(tǒng)即將退出時使用,其它部分全部用日志統(tǒng)計圈復(fù)雜度重要單個類行數(shù)與否不不不大于500行?單個類建議行數(shù)不大于500行,最多不超出1000行重要辦法參數(shù)個數(shù)與否在7個以內(nèi)?辦法參數(shù)個數(shù)建議不不不大于5個,最多不超出7個重要單個辦法函數(shù)與否不不不大于30行?單個辦法建議函數(shù)不不不大于30行,做多不超出60行重要單辦法中try/for/while/switch/if最深深度與否不不不大于5?單辦法中try/for/while/switch/if最深深度不允許不不大于5重要辦法調(diào)用最深深度與否不不不大于15?辦法內(nèi)部+內(nèi)部調(diào)用累計深度不允許不不大于15SQL空格普通連接符or、in、and、以及=、<=、>=等前后加上一種空格。普通逗號之后必須接一種空格。普通核心字、保存字和左括號之間必須有一種空格。SQL注釋重要對較為復(fù)雜的SQL語句加上注釋,闡明算法、功效。注釋風格:注釋單獨成行、放在語句前面。重要對重要的計算應(yīng)闡明其功效。SQL中盡量少涉及業(yè)務(wù)邏輯普通可采用單行/多行注釋。(--?或?/*?*/方式)。SQL優(yōu)化性能建議1?書寫SQL語句優(yōu)化細則重要???1)?盡量避免相似語句由于書寫格式的不同,而造成多次語法分析。重要???2)?多表連接時,使用表的別名來引用列。建議最多5個連接重要???3)?不要在任何代碼中使用?SELECT?*。重要???4)?where條件中盡量減少使用常量比較,改用參數(shù)變量。重要???5)?盡量少用嵌套查詢。如必須,請用not?exist替代not?in子句。重要???6)?用多表連接替代EXISTS子句。重要???7)?使用UNION?ALL提高性能?。重要???8)?in、or子句常會使用工作表,使索引失效;如果不產(chǎn)生大量重復(fù)值,能夠考慮把子句拆開;拆開的子句中應(yīng)當包含索引。2?排序注意事項重要???1)?大量的排序操作影響系統(tǒng)性能,因此盡量減少orderby和group?by排序操作。如必須使用排序操作,請遵照以下規(guī)則:重要?

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論