1.避免過度設計
? ? 1.1 不要超過實際使用需求,例如:設計支持100億人登陸的系統、家用空調可以達到零下的度數等等
? ? 1.2 不要把事情做復雜或者以復雜的方式工作
? ? ? ? 1.2.1 讓事物超過實際需要進行工作
?????????????????????select * 卻不需要所有的列
? ? ? ? ? ? ? ? ? ? ?一次請求反復查詢同樣的數據而未使用緩存
? ? ? ? 1.2.2 讓用戶費不必要的精力,增加用戶不使用的功能
? ? ? ? ? ? ? ? ? ? ? ?比如如果微博提供轉化pdf下載,就是不必要
? ? ? ? ? ? ? ? ? ? ? ? 這方面微信做的非常好,功能做的很克制,用戶使用門檻非常低
? ? ? ? 1.2.3 讓工程師去理解不必要的事情
? ? ? ? ? ? ? ? ? ? ? ? 代碼寫的特別復雜,不清晰
? ? ? ? ? ? ? ? ? ? ? ? 設計的過于復雜,比如一個功能設計了十幾個開關、十幾個參數配置等等
? ? ? ? ?這個我太有感觸了,設計的太復雜了,對于設計評審、代碼review、測試評審都是災難,其余專業的人員也很難發現問題并提出專業的意見,會嚴重降低工程的質量,如果不能及時修正,就會最終失控,如果出現故障,無法在短時間內進行解決和修復。
2.避免過度設計的原則
? ? DID原則
? ? D(Design)? 按照20倍進行設計
? ? I(Implement) 按照3倍進行實現
? ? D(Deploy)按照1.5倍進行部署,其中基礎設施要可擴展比如使用云等
3.三次簡化方案:簡化需求,簡化設計,簡化開發部署