看到這篇文章,深有感觸,c++又不是附庸風雅的東西,被濫用也就罷了,還要。。。
轉自http://www.cppblog.com/cool-liangbing/archive/2009/03/28/78116.html
問起c與c++區別,常常從語法上回答,c++是帶類的c,再深入可能提到設計方面,面向對象設計支持,範型設計等等。
問起爲什麼使用c++?能使用面向對象設計來取代過程式設計,可能是最多的回答;還有就是c++可以寫大項目,在控制大系統上有優勢。
以上回答有問題嗎?不知道,別人若問我,我也這麼回答。
從2月份開始,一直在開發網絡行爲審計系統高性能版,我們也叫大流量版本。是在以前普通版上進行重新設計,採用分佈式、多進程、多線程來最大化利用memory、CPU,提高系統吞吐量。
在架構設計確定以後,就是進行詳細設計和開發,因爲有普通版,當然是進行重構或重寫。普通版也是使用c++編寫的,g++編譯,我使用VIM開發。
設計風格呢?有class無OO設計,還是個過程式的東西----這種風格太常見了,大文件、大函數、廢代碼成堆出現,不安全的指針操作,忘記資源釋放等等。
這種現象我在所工作幾家公司都發現了,讓我頭痛,也讓我練就了一手好的重構技術,現在基本上面對這種代碼,我能處亂不驚了。
----這種現象,讓維護成本成倍增加以至於系統腐爛。是c的錯,還是c++的錯?是面向過程的錯?還是面向對象的錯?
開發語言沒有錯,用c開發,我既可以進行過程式設計,也可以進行面向對象設計,即結構體+函數指針來表達類,函數指針來表達多態等。
設計風格沒有錯,其實不管面向過程設計還是面向對象設計,系統架構設計、模塊化首先要做好,對功能內聚性理解要清楚;不然,時髦的面向對象設計也沒有什麼用。
現實中,我們所設計的類,不會是圖形Shape與圓,馬與白馬關係那麼簡單,你不可能很容易得出一個唯一的設計答案。
why use c++? 我感覺最簡單的答案就是公司已經用它,那進公司就得用它,沒有那麼多廢話,這就是最最簡單的管理----服從。
用了c++就能寫出好系統、大系統嗎?不能。語言解決不了設計人員和開發人員本身素質問題。