在上次的博文敏捷開發之道(八)設計中,咱們講解了一下在傳統開發過程當中的設計存在的一些缺陷和緣由。今天咱們講解一下敏捷開發是如何對待設計的。
在實際的開發過程當中,常常會存在兩種設計極端,一種是過分設計,一種是設計不足。兩種狀況對於項目來說都會形成很差的影響,因此在開發過程當中應該儘可能去避免這兩種極端,可是這兩種極端的尺度對於項目開發人員來說又不是特別的容易界定,因此這就形成了咱們在實際的開發過程不可避免的出現兩種極端。如何解決呢?
一、過分設計(over-engineering)
過分設計一般是指開發人員在編寫代碼的過程當中,常常會封裝一些類、在一些地方預留一些接口或者方法等等,這對開發的靈活性來很是重要,但凡是都有利弊兩個方面,若是在開發的過程當中過分的進行封裝、預留一些無用的接口或方法,那麼對於開發人員來說就不會產生一些額外的工做,同時也會將一些簡單的問題變的複雜。過分設計,一般出如今一些經驗較爲豐富,但在開發過程當中考慮的狀況太多而缺少針對性的開發人員身上。
二、設計不足(under-engineering)
設計不足是指設計出來的系統複用性差、擴展性不強、不能靈活的應對變化,換一種說法就是不可以靈活的應對需求的變化,編寫的代碼在某些特定的地方被一些特定的方法處理或調用,類似的功能屢次編寫,相似的結構沒法複用等等,這樣對於開發人員來說就形成了重複編寫一些無心義的代碼對於開發人員的積極性來說就形成了致命的打擊。設計不足,多半是由於經驗有限,設計能力有限所致。
三、漸進式設計(Evolutionary Design)
在敏捷開發中,過分設計和設計不足都是設計錯誤的表現方式,但二者之間又很難界定,因此在敏捷開發中對於設計採用的是漸進式的設計方式,它的特色在於系統的設計不侷限於項目的開始或某一時刻,而注重在系統設計的整個過程當中,在項目的進行中將最新的需求映射到一次次的重構和迭代中,最大限度的知足客戶的功能和非功能性能需求。
事實上,敏捷開發中也並無徹底解決需求不斷變化致使設計不斷變動這樣一個問題,但卻提供了一個可行的實現思路,那就是漸進式的去設計,有計劃性的去進行設計,既不在系統開發的初期過分的重視設計,也不在系統開發過程當中大範圍的修改設計,敏捷開發強調在開發過程當中按部就班的優化設計和實現,這與敏捷開發與人爲本,注重過程的基本思想是徹底一致的。
到目前爲止,關於敏捷開發的相關內容,我就先爲你們介紹到這裏,對於敏捷開發,還有不少的內容和工具須要咱們去不斷學習和實踐,因此,咱們還要不斷的前行。
給你們推薦幾本關於敏捷開發的書籍,以下:工具
http://pan.baidu.com/s/1i3ytxeX
性能