不要重複發明輪子:C++重用的5重境界(1)——代碼重用
軟件領域有一個著名的描述軟件重用的諺語:不要重複發明輪子!
這個道理是很簡單,也很明白的,誰都不想重複無用的勞動,但具體實踐中我們該如何避免重複發明輪子呢?
各位注意了,諺語中是說“重複發明”,不是說“重複使用”,也就是說我們實踐中其實也是避免不了重複使用輪子的,因此實踐中我們的對策也可以用一句簡單的語句表達:發明能夠重複使用的輪子!
下麵我們就以C++語言為例,看看究竟如何“發明重複使用的輪子”。
第一重境界:代碼重用
最簡單的當然就是代碼重用了:寫一段公共代碼,然後放到各個項目裏麵去編譯。
這種方式最直觀,但如果你真的在實踐中如此應用,那麼將麵臨如下問題(假設3個項目共用):
1)一份代碼,三份拷貝
因為采用的是代碼編譯,所以一份代碼在存儲時會占用3份的磁盤空間,在運行時會占用3份的內存空間。
當然在現在這個磁盤空間動不動上100G,內存動不動上G的年代,可能大家對這種浪費不以為然,但是回過頭去看看曆史,如果在你的內存隻有32M的年代,這種浪費就不一般了,將會對係統產生很大影響。
2)一次修改,三次編譯
假如某一天這份代碼修改了,也許是一個小小的BUG,也許是一點小小的優化,但最終的結果都是一樣的:所有用到這個公共代碼的項目都需要重新編譯。
對於普通的小程序來說,編譯可能是幾秒到幾分鍾的事情,功能驗證也很簡單,編譯問題看起來還不是很嚴重;但如果是企業級、電信級的程序,這種編譯加驗證的工作量是巨大的,而且要部署到已經運行的係統中時,可能需要卸載安裝。
========未完待續,後麵更精彩===========
最後更新:2017-04-02 00:06:45