連載:物件導向葵花寶典:思想、技巧與實踐(35) - NOP原則

來源:互聯網
上載者:User

標籤:物件導向   設計原則   nop   

NOP,No Overdesign Priciple,不要過度設計原則

 

這應該是你第一次看到這個原則,而且你也不用上網查了,因為這個不是大師們創造的,而是我創造的:)

 

之所以提出這個原則,是我自己吃過苦頭,也在工作中見很多人吃過類似的苦頭。

 

你可能也見過這樣的情境:

產品提出了一個需求,設計師眼光非常長遠,他甚至把5年後可能的業務變化都提出來並且加以設計了,讓你不得不佩服設計師的高瞻遠矚的眼光,並且由衷的從心底讚歎:牛逼啊!

 

但很快你就會發現,設計師是很牛逼,但你開發的時候就很苦逼了,設計方案巨複雜,工作量巨大,即使你發揚一不怕苦二不怕累的精神,每天加班加點奮鬥了三個月終於做出來了,但你苦逼完了,測試跟著苦逼了:很多東西測試都沒辦法測試!

 

怎麼會出現這樣的情況呢?我們做物件導向不就是為了應對變化、擁抱變化嗎?

 

要回答這個問題其實很簡單,孔夫子在《論語》中已經為我們解答了:“子貢問:‘師與商也孰賢?’子曰:‘師也過,商也不及。’曰:‘然則師愈與?’子曰:‘過猶不及。’”

 

什麼事情過頭了就和沒有達到是一樣的效果,物件導向的設計也不例外。物件導向的初衷雖然是為了擁抱變化,但這個變化也是有一個度的,而不是預測得越長越好,原因很簡單:預測越長,預測的結果正確性越低!誰能在2000年預測SUN公司的衰落?誰又能在2005年預測蘋果的崛起?

 

除了預測時間越長準確性越差的問題外,過分設計會導致設計方案不必要的複雜、代碼量龐大,投入產出不成正比,專案計劃無法按時完成。。。。。。等等很多問題。

 

有時候過分設計比設計不足的影響和危害更大,因為如果設計不足,我們還有“重構”這個利器,也不會出現浪費大量人力物力的情況;

而如果過分設計,如果後面發現原來的設計不正確或者不合理,首先原有的投入浪費了,其次是即使重構,也需要花費更多的人力物力。

 

所以,在設計過程中要時刻謹記NOP原則,避免過度設計!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.