淺談程式設計
一段程式碼能正常Run,沒有BUG,這就代表這段程式碼沒有問題,是一段良好的程式碼了嗎?沒有BUG,能執行,這不代表這段程式碼是一個好程式碼.
或者說評價一個程式碼的好壞,其指標或者說原則應該是多元的,不僅僅是能Run,並且沒有BUG.而評價一個程式碼最重要的是,程式碼能否適應將來的需要,即對程式碼的維護.
程式碼能Run,不是說Run一次兩次能用就好了,你要考慮的是它一年以後,兩年以後,五年以後.甚至十年二十年以後, 這個程式碼還可能有其他人或者你自己要繼續做下去.需求如果有了變更,要進一步發展下去,這個時候你拿之前寫的程式碼怎麼辦.
你的程式碼還能不能在今後起作用; 讓今後做維護的,無論是其他人還是你自己,能夠比較容易的在這個程式碼的基礎上做事情.這才是我們考察程式碼良好的一個重要原則。 就是說這個程式碼適不適合擴充套件,也就是常說的可擴充套件性.在程式中存在相似甚至相同的程式碼塊,這是非常低階的程式碼質量問題。
程式碼複製所帶來的問題就是:如果需要去修改一個副本,那麼就必須得同時修改所有其他的副本.否則就存在不一致的問題.這大大增加了維護程式的工作量,而且很容易存在錯誤和危險.
比如對於維護程式的人來說,程式設計師看到一個副本被修改好了,就以為其他所有要修改的地方都已經修改好了.因為沒有任何跡象表明還有一份一樣的副本程式碼存在, 所以很容易導致遺漏還沒被修改的地方.
消除程式碼複製的兩個基本手段————函式與父類。
你的程式設計優不優秀.就需要定義一些評價設計的術語:兩個重要的核心術語————耦合與聚合.
耦合指的是類與類之間的聯絡.程式設計的目標是一系列通過定義明確的介面通訊來協同工作的類.耦合度反映了這些類聯絡的緊密度. 我們要努力來降低耦合度,或者叫做鬆耦合.因為耦合度決定了程式修改的難易程度.在一個緊耦合的結構中,對一個類的修改也會導致對其他一些類的修改. 這是我們要努力去避免的,否則,一點小小的改變就可能使整個應用程式發生改變.另外要想找到所需要修改的地方,並一一修改卻是即困難又費時的事情.
另一方面,在一個鬆耦合的系統中,常常可以修改一個類,但同時不會修改其他類,而且整個程式還可以正常工作.
聚合與程式中一個單獨的單元(可以說是test)所承擔的任務的數量和種類相對應有關,它是針對類或方法(函式)這樣大小的程式單元而言的理想情況下, 一個程式碼單元應該負責一個聚合任務(也就是說,一個任務可以被看作是一個邏輯單元(logic unit)).一個方法應該實現一個邏輯操作,而一個類應該代表一定型別的實體.
聚合的重點是重用:如果一個方法或者類是隻負責一件定義明確的事情,那麼就很有可能在另外不同的上下文環境中使用.
遵循這點的好處是,當程式某部分的程式碼需要改變時,在某個程式碼單元中很可能會找到所有需要改變的相關程式碼段。
相關文章
- 淺談程式設計思想程式設計
- 淺談非同步程式設計非同步程式設計
- 淺談Windows API程式設計WindowsAPI程式設計
- 淺談程式設計正規化程式設計
- 淺談物件導向程式設計物件程式設計
- 淺談程式設計師創業程式設計師創業
- 淺談PHP物件導向程式設計PHP物件程式設計
- 白板程式設計淺談——Why, What, How程式設計
- 淺談如何提高程式設計效率?程式設計
- 淺談PHP程式碼設計結構PHP
- 淺談Javascript物件導向程式設計JavaScript物件程式設計
- 淺談程式設計師的“內卷化”程式設計師
- SpringBoot 非同步程式設計淺談Spring Boot非同步程式設計
- 淺談高可用設計
- 淺談表單設計
- 淺談程式設計師職業生涯規劃程式設計師
- C#非同步程式設計之淺談TaskC#非同步程式設計
- 淺談程式設計師的英語學習程式設計師
- 淺談Swift網路程式設計最佳實踐Swift程式設計
- 淺談程式設計師的數學修養程式設計師
- Mongodb架構設計淺談MongoDB架構
- 淺談設計文件寫作
- 淺談學習設計模式設計模式
- 淺談函數語言程式設計與 Java Stream函數程式設計Java
- 淺談Java 8的函數語言程式設計Java函數程式設計
- 淺談Delpih中的windowsAPI程式設計初步(1)(轉)WindowsAPI程式設計
- 淺談C++物理設計:設計原則C++
- 談談程式設計師程式設計師
- 荒野亂鬥角色設計淺談
- 淺談java之設計模式(1)Java設計模式
- 淺談設計模式——工廠模式設計模式
- 淺談設計模式——單例模式設計模式單例
- 淺談業務中臺前端設計前端
- 淺談VueUse設計與實現Vue
- 淺談資料庫設計技巧資料庫
- 淺談產品模型(Profile)在程式設計中的作用模型程式設計
- 淺談Java、PHP、C++程式設計的優缺點JavaPHPC++程式設計
- 淺談雲巴實時通訊的程式設計模型程式設計模型