敏捷設計
在大多數軟體專案中最不穩定的東西就是需求,需求處在一個持續變動的狀態中。軟體的設計也會因為需求的變化而腐化。常見的腐化有7種型別。為了解決這些問題,許許多多的軟體開發人員和研究人員總結出了5種設計原則。這些設計原則是解決軟體腐化問題的有效方式。
敏捷團隊可以應用這些原則來解決軟體設計腐化問題(臭味),但是這些原則也絕非在系統中到處噴灑的香水。過分遵循這些原則會導致軟體設計變得不必要的複雜。只要儘可能的保持好的設計即可。
設計必須要保持乾淨、簡單,並且由於原始碼是設計最重要表示。所以就要求敏捷開發人員要每天、每小時、甚至每分鐘都要保持軟體儘可能的乾淨、簡單富有表現力。
1 腐化問題
- 僵化性(Rigidity): 很難對系統進行改動,因為每個改動都會迫使系統許多其他地方做出改動。
- 脆弱性(Fragility):對系統的改動會導致系統中和改動的地方在概念上無關的許多地方出現問題。
- 牢固性(Immobility):很難解開系統的糾結,使之成為一些可在其他系統中重用的元件。
- 粘滯性(Viscosity):做正確的事情比做錯誤的事情要困難。
- 不必要的複雜性(Needless Complexity):設計中包含不具任何直接好處的基礎結構。
- 不必要的重複(Needless Repetition):設計中包含有重複的結構,而該重複的結構本可以使用單一的抽象進行統一。
- 晦澀性(Opacity):很難閱讀、理解。沒有更好地表現出意圖。
2 設計原則
- 單一職責原則(The Single Responsibility Principle,簡稱SRP)
- 開放-封閉原則(The Open-Close Principle,簡稱OCP)
- Liskov原則(The Liskov Substitution Principle,簡稱LSP)
- 依賴倒置原則(The Dependency Inversion Principle,簡稱DIP)
- 介面隔離原則(The Interface Segregation Principle,簡稱ISP)
相關文章
- CSM|敏捷設計,讓設計更高效敏捷
- 我眼中的敏捷設計敏捷
- 需求如何進行敏捷設計敏捷
- 【敏捷開發】結對程式設計敏捷程式設計
- 敏捷開發大家談(五)--敏捷開發的設計原則敏捷
- LeaRun敏捷開發框架快速設計表單敏捷框架
- 資料庫設計中的敏捷方法 (轉)資料庫敏捷
- 領域驅動設計與敏捷開發敏捷
- 敏捷設計,高效協同,凸顯設計端雲協同價值敏捷
- 敏捷最佳實踐:設計衝刺完整指南 -Useberry敏捷
- 從 Etsy 團隊看敏捷架構的設計敏捷架構
- 10 個讓敏捷設計更加高效的方法敏捷
- 58同城敏捷BI系統的設計與實踐敏捷
- 敏捷思維-架構設計中的方法學 (轉)敏捷架構
- 敏捷的雲端計算?敏捷
- 「中華田園敏捷」程式設計師也別甩鍋敏捷程式設計師
- 什麼是敏捷估計?敏捷
- 敏捷誤解:無需設計的演示驅動開發 - Darko敏捷
- 對軟體開發有利的5個敏捷程式設計方法敏捷程式設計
- 精益化設計:把敏捷方法和Lean UX相結合敏捷UX
- 敏捷體驗設計師應該具備的12項技能敏捷
- 經驗分享:在金融企業中實施領域驅動設計的敏捷實踐 | 敏捷聯盟敏捷
- 槓上敏捷宣言了!在推動敏捷過程中我們失去了軟體設計! -zdnet敏捷
- 敏捷開發系列之旅 第二站(走近XP極限程式設計)敏捷程式設計
- 系統的化身——敏捷教練的人設敏捷
- 為什麼這麼多程式設計師和IT公司討厭敏捷開發?程式設計師敏捷
- 預測:雲端計算提升敏捷性敏捷
- 敏捷方法如果過於注重程式設計師紀律是否引發內卷化?敏捷程式設計師
- 產品設計體會(3013)專案的“敏捷溝通”實踐薦敏捷
- 敏捷專家認為敏捷框架SAFe實際最不敏捷敏捷框架
- 高效程式設計師的45個習慣-敏捷開發修煉之道(讀後感)程式設計師敏捷
- 我的敏捷、需求分析、UML、軟體設計電子書 - 下載(持續更新中)敏捷
- [分享]《高效程式設計師的45個習慣:敏捷開發修煉之道》筆記程式設計師敏捷筆記
- 順通ERP:精細敏捷的設計理念,得到了消費者的喜愛敏捷
- 敏捷史話(五):敏捷已逝 —— Dave Thomas敏捷
- 為什麼要進行敏捷?敏捷有哪些好處以及敏捷工具敏捷
- UX設計師在Scrum敏捷團隊中工作面臨的六大挑戰UXScrum敏捷
- 《高效程式設計師的45個習慣:敏捷開發修煉之道》-個人讀後感程式設計師敏捷