敏捷設計

一朝風月S發表於2020-11-29

在大多數軟體專案中最不穩定的東西就是需求,需求處在一個持續變動的狀態中。軟體的設計也會因為需求的變化而腐化。常見的腐化有7種型別。為了解決這些問題,許許多多的軟體開發人員和研究人員總結出了5種設計原則。這些設計原則是解決軟體腐化問題的有效方式。
敏捷團隊可以應用這些原則來解決軟體設計腐化問題(臭味),但是這些原則也絕非在系統中到處噴灑的香水。過分遵循這些原則會導致軟體設計變得不必要的複雜。只要儘可能的保持好的設計即可。
設計必須要保持乾淨、簡單,並且由於原始碼是設計最重要表示。所以就要求敏捷開發人員要每天、每小時、甚至每分鐘都要保持軟體儘可能的乾淨、簡單富有表現力。

1 腐化問題

  1. 僵化性(Rigidity): 很難對系統進行改動,因為每個改動都會迫使系統許多其他地方做出改動。
  2. 脆弱性(Fragility):對系統的改動會導致系統中和改動的地方在概念上無關的許多地方出現問題。
  3. 牢固性(Immobility):很難解開系統的糾結,使之成為一些可在其他系統中重用的元件。
  4. 粘滯性(Viscosity):做正確的事情比做錯誤的事情要困難。
  5. 不必要的複雜性(Needless Complexity):設計中包含不具任何直接好處的基礎結構。
  6. 不必要的重複(Needless Repetition):設計中包含有重複的結構,而該重複的結構本可以使用單一的抽象進行統一。
  7. 晦澀性(Opacity):很難閱讀、理解。沒有更好地表現出意圖。

2 設計原則

  1. 單一職責原則(The Single Responsibility Principle,簡稱SRP)
  2. 開放-封閉原則(The Open-Close Principle,簡稱OCP)
  3. Liskov原則(The Liskov Substitution Principle,簡稱LSP)
  4. 依賴倒置原則(The Dependency Inversion Principle,簡稱DIP)
  5. 介面隔離原則(The Interface Segregation Principle,簡稱ISP)

相關文章