同事告訴個人那些C++開發經驗

關於註釋:
空行也是有效的註釋,應該在不一樣邏輯塊之間添加空行。
過期的註釋會浪費代碼維護者的大量時間,若是更新了代碼致使註釋過期,就算沒有時間更新註釋,那就請把錯誤的註釋刪掉。
避免無效的註釋,好比:int i = 0; //賦值成0

關於函數規模:
函數的功能要保持單一,儘可能將函數的規模控制在50行之內。
不要等到一個函數變得冗長時,纔想要拆分,每每那時候已經晚了:在多人協做的項目中,改動這麼大片代碼是頗有風險的,既然產品只要我增長一個功能,我又何須麻煩本身呢?因此,拆分函數要趁早!

關於異常:
不要捕獲異常後,不作處理!
由於忽略異常後,代碼繼續執行,可能會在某一個地方產生Crash,而Crash的地方已經於異常發生的位置相隔甚遠,這會讓問題的定位異常艱難。記住,若是不知道怎麼處理異常,寧願不catch,就讓它Crash吧,這至少方便程序員定位問題。

善於從別人的代碼中學習:
char* strcpy(char *dst, const char *src)
{
    assert(NULL != dst && NULL != src);    
   char *addr = dst;
   while((*dst++=*src++))
    ;
   return addr;
}

strcpy的實現,有幾點能夠學習: c++

1. 用NULL而不是0,方便閱讀。
2. strcpy返回目標字符串的地址,是爲了可以進行級聯操做,好比能夠這樣計算出目標字符串的長度:strlen(strcpy(dst, src)),cout也是同理:cout << "a" << "b" << endl; 在寫C++函數時,要考慮一下,個人函數是否也要支持這種操做。
3 不少C/C++的函數,都是dst在前,src在後(至於爲何,能夠看 http://my.oschina.net/u/1453800/blog/210176),咱們設計函數時,要與之保持一致。
4 strcpy的src的類型帶有const,除了保證src不變之外,const char *還會兼容char *。若是寫成char *,那麼strcpy就不能接受const char *的src了。
相關文章
相關標籤/搜索