重構和設計模式---2016最後一篇博文,也是這一年的心得。
重構是逐步改進程式碼和架構的過程,也是不斷嘗試的過程。
重構是在不修改或少量修改程式碼的外部行為的情況下,對其內部結構進行調整的過程;重構過程包括程式碼結構優化、演算法的優化,甚至一個變數的使用優化。
在軟體開發中,經常會發現一些這樣或那樣的問題,這時,我們就可能通過重構來解決這些問題。通過重構,我們可以達到以下目的:
● 優化程式碼設計,使其更清晰、更易閱讀,這也是建立可維護的高質量程式碼的要求。
● 優化演算法,使其執行更高效。
● 優化效能,通過合理、科學地組織
程式碼,可以有效提高軟體系統的效能。
● 優化架構,使軟體架構更靈活、更高效、更富有彈性。
● 讓我們對程式碼的理解更深入,可以幫助我們理解如何更好地使用程式設計技術和方法,這也是程式設計技術不斷提高的有效途徑。
在重構的過程中,我們還應該注意以下幾點:
● 對於重複程式碼、過於複雜的演算法和結構,以及思路模糊不清的程式碼,一定要進行徹底的重構,否則當問題累積過多時,將很難進行有效的改進。
● 重構過程一定要逐步完成、循序漸進,一次只重構一個問題,重構完成一定要進行測試後才能做出結論。
● 在有條件的情況下,重構可以嘗試
多種方法,以便找出最優的重構方法。
● 如果面對一堆不能正確執行的程式碼,卻找不出好的重構方法,那麼就完全重寫它們,在這種情況下,完全重寫可能是比重構更好的選擇。
設計模式是針對軟體開發中不斷出現的相同問題,通過實踐和總結,整理出的一系列與問題相對應的解決方案。
設計模式是經過很多人的努力,通過不斷地發現和累積的經驗與智慧結晶,我們可以在自己的程式碼結構中再現這些模式,以解決開發中的實際問題。但是,在軟體中應用設計模式,我們還需要注意一些問題,例如:
● 設計模式並不是軟體設計的終極武器。我們學習設計模式,或是其他的開發技術,它們都不會自己完成軟體的開發,真正使用它們的是開發者,只有正確、合理地使用這些開發技術才能達到提高軟體質量的目的;濫用或錯誤地使用往往會適得其反。
● 很多人學習了設計模式以後,往往會在軟體設計的開始就大量地考慮如何在軟體中應用各種設計模式,達到了離開設計模式就無法程式設計的地步,甚至是在開發一個非常簡單的小專案裡也是這樣。這種情況被稱為“模式痴迷”,往往是設計模式初學者易犯的錯誤,我也曾經這樣。
● 但是,也並不是說在軟體開發的設計階段就完全不需要考慮應用設計模式,這是一個比較複雜的設計前瞻性問題,需要足夠的開發經驗作為支撐。在考慮應用設計模式時,必須要對設計模式的特點,以及軟體架構和需求非常熟悉,設計要恰到好處,儘可能地防止設計過度或設計不足的出現。
● 在對軟體架構進行重構的過程中,不應只是使用設計模式的過程,根據實際情況,我們要對程式碼進行無情的鍼砭,不要心疼移除自己費大力氣編寫的程式碼,它們可能只是你建立高質量軟體的絆腳石。在重構的過程中我們應該根據真正的需求,在軟體架構中應用或去除設計模式,或者只是借鑑設計模式的某些特點來提高程式碼的質量。
—–來自《編寫高質量的C#程式碼–曹化宇著》
個人覺得這本書部分內容寫的不錯,也有一定的啟示,但是裡面的程式碼寫的不是很好,根本沒有達到上面所說的內容,但是適合有C#基礎的讀者讀讀,一些老司機還是不要讀了。如果一定要讀,建議讀讀後面的介紹的設計模式。