軟件散發的臭味

1)僵化性( Rigidity)
很難對軟件進行改動,因為每個改動都會迫使許多對系統其他部分的改動
2)脆弱性( Fragility)
對系統的改動會導致系統中和改動的地方在概念上無關的許多地方出現問    題
3)牢固性( Immobility)
很難解開系統中某部分與其它部分之間的糾結,從而難以使其中的任何部分可以被分離出來被其它系統復用
4)粘滯性( Viscosity)
做正確的事情要比做錯誤的事情困難。表現為兩種形式:

? 軟件粘滯性
需要對軟件進行修改時,可能存在多種方法。有的方法可以保持原有的設計質量,另一些方法則會破壞原有的設計質量。如果,破壞軟件質量的修改比保持原有設計質量的修改更容易實施時,我們就稱該軟件具有“軟件粘滯性”。
? 環境粘滯性
當開發環境遲鈍、低效時,就會產生環境粘滯性。
例如:如果編譯時間很長,那么開發人員可能會放棄那些能保持設計質量,但是卻需要導致大規模重新編譯的改動。

5)不必要的復雜性( Needless Complexity)
設計中包含不具有任何好處的基礎結構。
6)不必要的重復( Needless Repitition)
設計中包含一些重復的結構,這些結構本來可以通過單一的抽象進行統一
? 使用Cut/Copy/Paste實施源代碼級的軟件復用容易導致這一問題
? 這種代碼級別的冗余,將帶來修改上的問題
7)晦澀性( Opacity)

很難閱讀和理解
?不要相信你永遠都會如此清楚的了解你的每一行代碼“時間會沖淡一切”
?要站在閱讀者的角度進行設計

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容