什麼是軟體開發中的過度設計?
01-27
耗費了無用的腦力或者資源,沒有實際轉化為更良好的產品
滿足當前的現實需求是最基本的原則,也是一切設計的出發點。
軟體開發中的過度設計: "想得太遠".UI中的過度設計: 刻意體現某種"主義".
不要為了設計而設計。簡單實用永遠是最好的。
產品(軟體、網站)設計的過度設計定義跟目標相關,一個產品,只能滿足特定人用戶對象範圍的大部分人,1.0版本,能滿足80%就很NB了,因為你還有考慮穩定、美觀、時效。如果在1.0就一直在強調那幾個特殊用戶會怎麼怎麼樣、所以我們要怎麼怎麼樣,結果產品出來後一大堆不常用的功能。穩定性下降、市場時機早就過去、甚至大家都不知道怎麼開始用。
就像一個國家剛剛在炮火中打擊敵人而成立新國家,就要求所有馬路都要有良好的盲道設計,那一定被人認為過度勉強;但如果是一個成熟的國家,英國,如果馬路的盲道稍有不好的體驗,肯定會被人批評。
過度設計還有另一個概念,就是一大幫人,為了一個小問題而用一整天在討論哪個解決方案更完美。沒這個必要。我認為過度設計的主要原因是:未來不明確而且經常改需求
避免過度封裝,弄巧成拙。
現在的好多人覺得好大全的通用性就能說明自己的設計層次飆到架構師了一樣...
刻意
這裡有兩個方面:1.你看別人的代碼或框架,如果你覺得困惑,對於現在的你而言,是「過度設計」。2.你自己要完成一些代碼設計工作,對外的介面暴露太多、使用了太多的動態載入、反射,應用了太多的設計模式;等等,這樣對於代碼復用來講,並不比粘貼複製好多少。3.如何避免:用最直觀的方法來實現,最終去重構。永遠記得,代碼是要用的,不是用來選美。
有沒有破壞正常流程的流暢性
就是過度的完善功能,卻導致效率下降
和過度包裝差不多,很多名貴一點的東西都喜歡包裝很多層,有些是為了保護裡面的東西,有些就是為了提高價格、
簡單的解釋就是,你設計了別人不需要的東西。這種情況太常見,過度的考慮用戶可能使用的功能或流程,最終花大量的時間去實現,結果客戶一次沒用的事情比比皆是
面向當下,兼顧未來。只滿足後者,那就是過度設計,當然還可以不懂裝懂
脫了褲子才能放屁 = 過度設計放屁放了一半發現屎來了還能不臟褲子 = 適度設計
遇到更多的是需求過渡設計,給了2個man day把基本需求實現了,但是如果把結構「設計」「優化」得炫一點,規定時間內實現不了,被砍,其曰:不要過度設計。
過度優化和過度設計乃開發中的兩大坑. 特別是過度設計,比較難以糾正和發現. 越是新手(特別是死讀書的)越容易陷於其中.
沒事可以回想下自己(特別是JAVA程序員)做過的項目, 是不是有很多的設計時的預想沒有成為現實, 導致很多代碼設計沒有發揮實際作用. 如果答案是yes,很可能就是過度設計了.
糾枉需過正.
1.從簡單做起, 不怕簡陋,達到需求效果就行. 我現在主要採用lazy design原則, 簡單說,只要不發生,就不會為此設計.2.重視重構, 要常常使用重構來調整代碼.只要不符合項目目標與預算的設計都是過度設計。
不懂的人怕別人知道他不懂而進行的設計。
當在項目中應用的技術實施方案不是基於產品自身業務特點及可行性規劃而設計的時候
比如當萬級用戶規模的時候談開放平台,當百萬級數據規模的時候上大數據,雲計算等。。贊一下太陽同學,有明確的目標再做設計。先搞清楚要做什麼,設計是屬於怎麼做的範疇,二者一前一後,別搞反就行。
脫離了業務場景來進行技術架構的設計都是過度設計。適度設計也參考這條
挺好的,然後按階段一步步走下去,覺得挺好的呀
我覺得你應該去看看《
好用型設計 》。這裡面說的很詳細。凡是不常用的功能都會擾亂正常選擇,也就是過度設計了。設計的本質是對功能的取捨,以及排列組合對用戶的良性暗示。上面那個遙控器是個很好的例子。
推薦閱讀:
※Bash 的威力
※功能安全中的軟體隔離(二)
※為什麼不用pdf或者pngjpg格式發帖子或者發博客?
※軟考中級的軟體設計師難考嗎?
※請問軟體開發與編程對電腦有什麼要求嗎?
分頁阅读: 1 2