posts - 176, comments - 240, trackbacks - 0, articles - 7

          [導入]過度設計與設計不足

          Posted on 2005-12-28 23:11 canonical 閱讀(1557) 評論(3)  編輯  收藏 所屬分類: 設計理論
               Agile批評過度設計(over-engineering)的聲音很大,但對于設計不足(under-engineering)同樣是持堅決的否定態度 的。修改過度設計的應用比修改設計不足的程序要容易的多。因為簡化的途徑是明確的,而走向復雜的途徑卻往往是難以控制的。Refactoring To Patterns試圖引入一些經驗,但這些可預見的調整多半只在細節處,其影響是局部的。一個復雜性低層次的設計要支持一個復雜性高的應用,所需的代碼量 不是線性的堆砌,而是幾何級數式的增長,重構的時候需要做出的改變往往也是影響全局的。而事實上,設計不足是比過度設計更加常見的情況。真實的情況也許 是,在真正需要我們做出創造性設計的地方我們因為無知和無能而設計不足,而在那些渴求簡單的地方,我們卻自詡為先知而加上很多華麗的設計來維護虛幻的可擴 展性。這里的度是很難把握的。高段位的棋手可以比低段位的棋手預見到更多的步數,而一個優秀的軟件架構師也需要比普通的程序員更早的預見到系統發展的障 礙。在我們明確可預見的范圍內,當然是要把所有的設計做好,而在我們思維的邊界處,"行"就變得比"思"重要了。
              大談"over-engineering"的主多半都有著豐富的過度設計的經驗,千萬不要把他們回顧時的話語當成是普遍的真理。所謂大巧若拙,精煉的小詩 可比長篇大論難寫的多了。有時采用一種簡單的處理方式,是因為我們感覺到它不會成為障礙,雖然此時并沒有明確的設計過程。你必須有能力進行過度設計,才能 真正理解簡單設計的精妙之處

          Feedback

          # re: [導入]過度設計與設計不足  回復  更多評論   

          2005-12-29 09:15 by TrampEagle
          很同意上述觀點,那些大師們的很多設計都有其精妙之處,但不可避免的都有其不足之處,他們對自己經驗的總結,并不一定就適合他人,設計不是單靠模仿就能學得來的,這就是所謂的讀萬卷書不如行千里路,但經驗的積累又不是一蹴而就的,不但需要知識的沉積,還需要長久經驗的總結升華,設計就象寫文章,不可能一下子就長篇大論,但如果沒有長篇大論的階段,寫出的文章很難短小精悍。

          # re: [導入]過度設計與設計不足  回復  更多評論   

          2005-12-29 11:30 by Qutr
          看了樓主的一系列文章,感覺樓主的知識面很廣。
          總是能站在一個相當的高度上看待問題。
          長期關注你的文章!

          # re: [導入]過度設計與設計不足  回復  更多評論   

          2006-02-24 13:47 by sodme
          文中所含思想, 很值得我們反思: 在閱讀一些所謂的名家名作時, 應該抱著怎么的一種辯證觀點去思考和采納.
          主站蜘蛛池模板: 仙居县| 桐城市| 布尔津县| 铅山县| 高密市| 西乌珠穆沁旗| 大丰市| 哈密市| 江都市| 广宁县| 乐山市| 景宁| 肃宁县| 宁城县| 娄烦县| 晋江市| 吴江市| 滦平县| 应城市| 溧阳市| 巴彦县| 科技| 禄劝| 隆回县| 兴和县| 合江县| 安泽县| 岑溪市| 图木舒克市| 威远县| 万荣县| 永州市| 岑巩县| 河间市| 庐江县| 吉安县| 即墨市| 临海市| 潍坊市| 曲阜市| 武冈市|