關於過度設計和商務邏輯的錯誤

來源:互聯網
上載者:User

前段時間對一個部落格進行設計,在關於封裝查詢語句的函數上面做一個錯誤的決定,那就是過度設計,原因是這樣滴:

因為需求沒有完全弄明白,也不知道以後會不會添加別的查詢判斷語句,所以在函數的參數,傳回值等方面抉擇的類型為不定型interface{}也就是C的(void*),當時是這樣想滴:以後就算修改了,或添加了查詢條件陳述式也沒關係,因為參數為不定型,所以函數調用的時候沒有任何的影響,只在函數內部進行修改就可以了。

但是但是,,,,,,,

事實證明決策是錯誤的。

分為四種情況:

1.  以後確定不會改變。

2. 以後應該不會改變。

3.以後 不確定會不會改變。

4.以後應該會改變。

第一種情況下,不用多說,代碼硬寫就可以了,不用考慮靈活性(擴充性?)。

第二,三種情況下,比較難把握,以前有個誤區也在這裡,也是大部分人經常的錯誤所在:選擇為以後的擴充做努力。可以展現技術水平嘛,但事實正確的做法是:在這種情況下應該去假設以後不會改變去做設計,為什麼呐?原因在於,未來的可變性太多,就算是現在去做了很複雜的去適應未來,到未來到來的時候,大部分設計都會失敗的。二點是:簡單的實現,會節省時間,減少bug,代碼清晰等各種好處。但是為什麼好多人大部分都會選擇過度設計呐:因為可以滿足技術慾望,程式員的通病啊。

第三種情況下,毋庸置疑要選擇考慮擴充性的設計啦。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.