敏捷設計
在大多數軟體專案中最不穩定的東西就是需求,需求處在一個持續變動的狀態中。軟體的設計也會因為需求的變化而腐化。常見的腐化有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敏捷開發框架快速設計表單敏捷框架
- 敏捷設計,高效協同,凸顯設計端雲協同價值敏捷
- 從 Etsy 團隊看敏捷架構的設計敏捷架構
- 敏捷最佳實踐:設計衝刺完整指南 -Useberry敏捷
- 58同城敏捷BI系統的設計與實踐敏捷
- 「中華田園敏捷」程式設計師也別甩鍋敏捷程式設計師
- 槓上敏捷宣言了!在推動敏捷過程中我們失去了軟體設計! -zdnet敏捷
- 什麼是敏捷估計?敏捷
- 敏捷誤解:無需設計的演示驅動開發 - Darko敏捷
- 經驗分享:在金融企業中實施領域驅動設計的敏捷實踐 | 敏捷聯盟敏捷
- 順通ERP:精細敏捷的設計理念,得到了消費者的喜愛敏捷
- 敏捷方法如果過於注重程式設計師紀律是否引發內卷化?敏捷程式設計師
- 高效程式設計師的45個習慣-敏捷開發修煉之道(讀後感)程式設計師敏捷
- 敏捷專家認為敏捷框架SAFe實際最不敏捷敏捷框架
- 敏捷史話(五):敏捷已逝 —— Dave Thomas敏捷
- UX設計師在Scrum敏捷團隊中工作面臨的六大挑戰UXScrum敏捷
- 為什麼要進行敏捷?敏捷有哪些好處以及敏捷工具敏捷
- 敏捷史話(七):從程式設計師、作家到搖滾樂手——Andy Hunt的多面人生敏捷程式設計師
- 敏捷史話(十一):敏捷宣言“間諜”——Steve Mellor敏捷
- 敏捷大師:衡量程式設計師好不好的標準是程式碼越少越好 - Allen Holub敏捷程式設計師
- 敏捷史話(十二):你現在接觸的敏捷也許是“黑暗敏捷”——Ron Jeffries敏捷
- 敏捷開發敏捷
- 《敏捷革命》(三)敏捷
- 敏捷和scrum敏捷Scrum
- 資料中臺:宜信敏捷資料中臺建設實踐敏捷
- Pipefy如何使用團隊拓撲方法建設敏捷團隊?敏捷
- 敏捷史話(八):敏捷的破局之道——Martin Fowler敏捷
- Choerodon豬齒魚敏捷管理實踐(三):敏捷會議敏捷
- 敏捷史話(十五):我發明了敏捷估算 Poker —— James Greening敏捷
- 敏捷史話(四):敏捷是人的天性 —— Arie van Bennekum敏捷
- 敏捷落地 | 從“麥克萊恩”看敏捷與創新敏捷
- 中原銀行如何從0到1建設敏捷BI平臺?敏捷
- LR敏捷軟體平臺v7開發示例,功能設計模組化,UI特色明顯(長文)敏捷UI
- 敏捷是什麼?敏捷
- 敏捷專案管理?敏捷專案管理