關於C++編程規範

任何語言都需要編程規範的,相對於Java和Python等強化範式的編程語言,C++對於編程規範的需求更加強烈,因爲這樣的編程語言實在是太複雜,而且深入到計算機模型底層,直接對於硬件和內存進行操作,相對於虛擬機託管的編程語言,更容易在倏忽之間犯錯。造成bug。作爲一個熟練使用C++進行編程程序員來說,我對於C++編程規範擁有一些自己的想法。

我度過Clean Code這本書,但是我沒有將他讀完,由於這本書實在是太枯燥了,而且,我不認爲它推薦的方式比較好。可能更大的原因在於我不認同他的編程style吧,我更傾向於自行總結一套編程規範。

C++的編程規範:

1. 使用引用或者是指針,不要使用值傳遞,這樣比較高效而且佔用內存小。

我本人是喜歡使用C++ 的指針的,因爲這樣與C語言的兼容性比較好,我的程序中一般大量使用C++的指針,所有對象調用函數都是用“->”語法,看起來賞心悅目。重要的一點是最好只自己產生指針,傳入調用過程,之後傳出調用過程,不要把自己產生的對象指針傳送出去。以免內存泄露。獲得的指針自己要檢驗。

2. 程序中使用的對象的基本原則是,“誰產生,誰管理”,謹慎對待對象傳遞。

只有誰產生,誰管理的方式才能比較有效的預防內存泄漏。一些程序員喜歡類似於工廠類的方式產生對象,我對於這種方式一般是比較反對的。除非沒有辦法,不要使用這種方式,容易造成內存泄漏,因爲你不知道別的程序員會如何對待你產生的對象,不要將對象傳遞出去之後就不再管理了,如果有辦法,請不要撒手不管。另外請謹慎的對待這種產生對象傳遞的方式,能利用值傳遞簡單應付的請利用值傳遞的方式。沒必要將整個內存空間的指針傳來傳去的情況下,單純的值傳遞,容易排查和調試,接口簡單。

3. 程序中的指針處理。

如果不是你產生的指針,那麼請不要對他放心。需要你謹慎對待,有可能的空指針檢測,預防超界。如果接管一個對方傳送過來的指針的時候,一定要弄清楚對方的對象產生的方式,究竟是生成一個指針就脫手,還是重複利用這個指針幹事。這意味着你真的接管指針還是複製指針中的內容。

4. 每個類只幹一件事,儘量將這件事情幹好,多設計不同的類進行協調。

每個類只幹一件事情,這樣類的工作邏輯就比較簡單,代碼相對較小,這樣的程序好理解,好排故,好設計,好實現,好拓展。

5. 不要濫用繼承。

如果子類不是需要完全的繼承所有超類的所有功能,不要貿然繼承超類,這樣會造成接口臃腫,造成歧義,使用不當造成bug。

6.接口簡化,簡化,更簡化。


++++++++++++++++++++++++++++++++++++

思路有點亂,但是主要思路還是寫出來了。

今後會不斷的將編程過程中遇到的經驗教訓寫下來,不斷豐富

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章