敏捷設計

前言

這周進行第七、八、九章的閱讀,這幾章介紹什么是敏捷設計,以及引起軟件腐化的原因,隨后介紹在開發(fā)過程中應該遵循的兩個原則:單一職責原則(SRP),開放-封閉原則(OCP)。

敏捷設計

在軟件設計初始階段,系統(tǒng)設計總是很清晰,但隨著需求不斷改變,功能需要不斷增加,系統(tǒng)會變得越來越復雜,這時設計就逐漸變得腐化,系統(tǒng)開始變得難以擴展,難以維護。軟件開始散發(fā)出腐化的氣味。

1 軟件腐化的氣味

1) 僵化性?:?指的是很難對系統(tǒng)進行改動,每個小改動都意味著要更改系統(tǒng)其它更多的地方。

2)脆弱性:指的是對系統(tǒng)的一個地方進行改動,引起了其它地方出現(xiàn)了錯誤。

3)牢固性:指的是設計中包含了對其他系統(tǒng)有用的部分,但是要把這些部分從系統(tǒng)中出來所需要的努力和風險是巨大的。

4)粘滯性:粘滯性分為兩種表現(xiàn)形式,軟件的粘滯性和環(huán)境的粘滯性。開發(fā)人員在面臨一個改動的多種方案中,發(fā)現(xiàn)那些保持軟件設計的改動方法比破壞設計的方法更難用,此時軟件設計具有很高的粘滯性。當開發(fā)環(huán)境遲鈍或者低效時候就會產生環(huán)境的粘滯性。

5)不必要的復雜性:設計中包含沒有用的組成部分。

6)不必要的重復:系統(tǒng)中有很多重復的代碼。

7)晦澀性:指軟件模塊難以理解。

隨著時間的推移,軟件會逐漸腐化,為了盡量保持好的設計,我們在開發(fā)過程中就需要遵循一些原則。

單一職責原則

對于一個類來說,應該僅有一個引起它變化的原因。如果一個類承擔的職責過多,就等于把這些職責耦合到了一起,這樣的設計會引起軟件的僵化性和脆弱性。因此,我們在開發(fā)過程中,需要把相同職責的功能都寫到同一個類里面。

開放—封閉原則

1 描述

1.1 “對于擴展是開放的”。這意味著模塊的行為是可以擴展的,當應用的需求改變時候,我們可以對模塊進行擴展,使其具有滿足那些改變的新行為。

1.2 “對于更改是封閉的”。對模塊行為進行擴展時,不必改動模塊的源代碼或者二進制代碼。

2 關鍵是抽象

合適的抽象可以使軟件設計滿足這個原則。

總結

學習敏捷設計和敏捷設計該遵循的原則可以使我思考現(xiàn)有項目中存在的問題和應該采取什么樣的措施去改進設計。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 這周的任務是《敏捷軟件開發(fā)》第二部分第7-9章內容,主要介紹了敏捷設計中軟件腐化的表現(xiàn)和我們應該遵守的行為,敏捷開...
    張利鋒閱讀 748評論 0 1
  • Jack Reeves說, 實際上滿足工程設計標準的惟一軟件文檔,就是源代碼清單 設計的臭味——腐化軟件的氣味 當...
    清風流蘇閱讀 2,162評論 0 2
  • 滿足工程設計標準的唯一軟件文檔,就是源代碼清單。 一、軟件腐化 在軟件項目中最不穩(wěn)定的就是需求。需求處在一個持續(xù)變...
    王加冰閱讀 263評論 0 0
  • 第四天-第五天,協(xié)同設計階段 協(xié)同設計階段幫助減少低效溝通消耗掉的時間。讓所有團隊成員就要解決什么樣的問題達成一致...
    koalachen閱讀 621評論 0 2
  • 本文是敏捷軟件開發(fā)第二部分,敏捷設計的閱讀筆記,記錄一些對自己感觸深的想法。為什么需要敏捷,怎么實現(xiàn)敏捷??朔浖?..
    pokorz閱讀 289評論 0 0

友情鏈接更多精彩內容