1. 程式人生 > >敏捷軟體開發學習筆記

敏捷軟體開發學習筆記

敏捷設計:敏捷設計是一個過程,不是一個事件,它是一個持續的應用原則、模式以及實踐來改進軟體的結構和可讀性的過程,它致力於保持系統設計在任何實踐都儘可能得簡單,乾淨,及富有表現力; 也可以理解為:在敏捷開發的過程中,都儘量使用敏捷開發的原則,模式來實踐,改進軟體的結構和可讀性的一個過程 當軟體發出下面任何一種氣味的時候就表明軟體正在腐化, 1、僵化性:很難對系統進行改造,因為一改動全身; 2、脆弱性:對系統的改動會導致系統中和被改動的地方在概念 上無關的許多地方出現問題; 3、 牢固性:很難解開系統的糾結,使之成為一些可在其他系統中重用的元件; 4、粘滯性:做正確的事比做錯誤的事要困難; 5、不必要的複雜性:
設計中包含有不具有直接好處的基礎結構;
6、不必要的重複:設計中包含有重複的結構,而這些重複的結構是可以進行抽象的統一的; 7、晦澀性:程式碼的可讀性很差,讓人難以理解,沒有很好的表現出意圖 單一職責原則(SRP):一個類最好只有一個職責; 開放—封閉原則(LSP):軟體實體(類、模組、函式等等)應該是可以擴充套件的,但是不可修改; 特徵:①對其擴充套件開放,當需求改變時,我們可以對模組進行擴充套件,使其具有滿足那些改變的新行為; ②對於更改是封閉的,必須更改模組的原始碼; 替換原則(LSP):子型別必須能夠替換掉他們的基型別; 依賴倒置原則(DIP):①高層模組不應該依賴於底層模組;二者都應該依賴於抽象
②抽象不該依賴於細節,細節應該依賴於抽象; 依賴於抽象:程式中所有的依賴關係都應該終止與抽象類和或者介面: 任何變數都不應該持有一個指向具體類的指標或者引用; ②任何類都不應該從具體類派生出來; ③任何方法都不應該覆寫它的任何基類中已經實現了的方法; 介面隔離原則(ISP):不強迫其他模組依賴於它們不用的方法; 當一個模組依賴於一個含有它不適用的方法的類,但其他模組卻要使用該方法,那麼當這個類因為需求改變時,就會影響到這個模組;