只有瞭解了什麼失敗的設計,才能更好的理解設計原則。
失敗的設計具有以下特徵:
【僵硬性】:系統很難更新,因爲每一次改變都會迫使系統其他部分發生許多其他變化
【脆弱性】:系統更新後容易崩潰
【不可移動性】:很難將系統分解成在其他系統中可重用的組件
【粘性】:隨着系統的更新,軟件越來越具有僵硬性、脆弱性、不可移動性
【不必要的複雜性】:設計包含大量不會帶來直接的好處的模塊和細節
【不必要的重複性】:設計包含大量可統一的重複結構
【 不透明性】:軟件設計難以被人理解,即沒有很好地表達它的意圖