如何編寫高質量的代碼 程序員
關於設計和構造軟件: 性能
- 軟件研發主要的迫切問題是"管理(掌控)複雜度", 專一簡單性可以極大的減低複雜度。
- 實現簡單,有兩個主要途徑: 最小化本質上沒法避免的複雜度; 在可以管理當前複雜度的狀況下,適當挑戰一下難一點的複雜度。
- 軟件設計是啓發性的,是一個按部就班的過程。教條式的開發方法和盲目的遵循某些規則只能損害創造力和損害軟件的生命力。
- 好的軟件設計是能夠迭代的。嘗試更多的設計方法會讓你獲得更好的設計。
- 隱藏信息是一個很是有價值的概念。在軟件設計過程當中不斷詢問:」我能夠隱藏什麼數據「,能夠解決不少設計問題。
軟件設計的層次 .net
完整的軟件設計層次分爲:系統設計; 自模塊/包設計; 設計類; 設計數據和方法; 設計方法內部邏輯 設計
雖說系統劃分通常分爲5個步驟,可是應該根據系統的大小和複雜度來確認設計的深度。對於一個龐大的系統來講,要深刻到第五步是須要很是龐大的工做的,並且在設計過程當中很是容易丟三落四。 blog
不太好的模塊設計圖 開發
能夠看到該設計中,每一個模塊能夠和任意的其餘模塊進行通訊,這會引起不少問題: get
- 好像存在環狀依賴。好比依賴關係UI ->存儲->業務邏輯->圖形->UI.
- 若是程序員要修改其中一個模塊,他/她須要理解多少個模塊才能保證他們修改的代碼沒有問題?
- 若是其中一個模塊業務邏輯發生改變怎麼辦?
- 若是要增長一個UI, 複雜嗎?
- 若是要把數據存儲放到另一個機器,系統須要大量修改麼?
較好的模塊圖 軟件
簡而言之,低耦合,高內聚. 程序
如何編寫高質量的代碼 方法