可維護性與健壯性
一.些常用的度量指標
1.圈複雜度:圈複雜度大說明程式**可能質量低且難於測試和維護
2.**行數
3.可維護性指數(mi):0-100 利用公式計算
4.繼承的層次數:層次越多越不好維護。crp原則,盡量使用**而不是繼承。
5.類之間的耦合度
6.單元測試的覆蓋度
二.正確性
健壯性具體指的是系統在不正常的輸入或不正常的外部環境下仍能表現出正常的程度。也就是說如果你的程式健壯性不好,當別人使用的時候,輸入的時候錯誤就會導致崩潰。
面向健壯性的程式設計有以下幾點要求或優點:
1.處理未期望的行為和錯誤終止
2.即使終止執行,也要準確/無歧義的向使用者展示全面的
3.錯誤資訊錯誤資訊有助於進行debug
三,正確性
這裡談一下與健壯性的區別:正確性是永不給使用者錯誤的結果,而健壯性是盡可能的保持軟體執行而不是總是退出。
對於程式得邏輯判斷來說,測試和形式化證明的能力都是非常有限的。測試只能測試到最常用的情況,而無法覆蓋所有的情況。一行**被測試覆蓋而沒有出錯,並不等於在那裡不會出錯。一行**是否出錯,取決於在它執行之前所經過的所有條件。這些條件的數量是組合**關係,基本上沒有測試能夠覆蓋所有這些前提條件。
特徵工程(5) 降維
當特徵選擇完成後,可以直接訓練模型了,但是可能由於特徵矩陣過大,導致計算量大,訓練時間長的問題,因此降低特徵矩陣維度也是必不可少的。常見的降維方法除了上篇提到的基於l1懲罰項的模型以外,另外還有主成分分析法 pca 和線性判別分析 lda 線性判別分析本身也是乙個分類模型。pca和lda有很多的相似...
5 構造方法(建構函式)
使用new 構造方法建立乙個新的物件 構造方法是定義在類中的乙個用來初始化物件的方法 構造方法與類同名且沒有返回值,也不能寫void 建立物件時,使用構造方法初始化物件的成員變數 當沒有指定的構造方法時,編譯器為類自動新增無參構造方法 一旦指定了構造方法,編譯器就不會再自動新增無參構造方法 注意事項...
5 拷貝構造
const 變數不構成過載,const 引用可以構成過載 void fun char str 可以傳入陣列名 fun str void fun const char str 可以傳入陣列名,或者字串常量 fun 哈哈哈 static 全域性 在程式生命週期內使用 static 修飾的變數不能被其他檔...