原创 Google C++編程風格指南(六):代碼註釋

註釋 註釋雖然寫起來很痛苦,但對保證代碼可讀性至爲重要,下面的規則描述了應該註釋什麼、註釋在哪兒。當然也要記住,註釋的確很重要,但最好的代碼本身就是文檔(self-documenting),類型和變量命名意義明確要比通過註釋解釋模糊的命

原创 Google C++編程風格指南(三):C++ 類

關於類的注意事項,總結一下:1. 不在構造函數中做太多邏輯相關的初始化; 2. 編譯器提供的默認構造函數不會對變量進行初始化,如果定義了其他構造函數,編譯器不再提供,需要編碼者自行提供默認構造函數;3. 爲避免隱式轉換,需將單參數構造函數

原创 [原創] Megaco基本呼叫流程 - VoIP(Megaco/H.248)學習筆記系列之一

VoIP(Megaco/H.248)基本呼叫流程   最近總結了一下Megaco/H.248基本呼叫的流程,不含任何錯誤處理,先用文字的方法描述如下,後續會陸續推出時序圖版本,以及其他基本流程,如MG註冊,MG lock/unlock,長

原创 通信詞典

  通信類常用的英語詞彙 (表記錄的)插入修改添加刪除 InsertModify, updateAddDelete (撥號後)撥號音不斷 Non-stop Dial Tone (程序,進程)調度 Dispatch (程序安裝的)序列

原创 [轉帖] C/C++數組名與指針區別深層探索

  作者:宋寶華 e-mail:[email protected] 1. 引言 指針是C/C++語言的特色,而數組名與指針有太多的相似,甚至很多時

原创 Google C++編程風格指南(七):格式

格式 代碼風格和格式確實比較隨意,但一個項目中所有人遵循同一風格是非常容易的,作爲個人未必同意下述格式規則的每一處,但整個項目服從統一的編程風格是很重要的,這樣做才能讓所有人在閱讀和理解代碼時更加容易。 1. 行長度(Line Leng

原创 Google C++編程風格指南(五):命名約定

1. 總體規則:不要隨意縮寫;2. 宏、枚舉等使用全部大寫+下劃線;3. 變量(含類、結構體成員變量)、文件、命名空間、存取函數等使用全部小寫+下劃線,類成員變量以下劃線結尾,全局變量以g_開頭;4. 參考現有或相近命名約定…… 命名約

原创 Google C++編程風格指南(四):智能指針和其他C++特性

1. 對於智能指針,安全第一、方便第二,儘可能局部化(scoped_ptr); 2. 引用形參加上const,否則使用指針形參;3. 函數重載的使用要清晰、易讀;4. 鑑於容易誤用,禁止使用缺省函數參數(值得商榷);5. 禁止使用變長數組

原创 Google C++編程風格指南(二):作用域

1. .cc中的不具名命名空間可避免命名衝突、限定作用域,避免直接使用using提示符污染命名空間; 2. 嵌套類符合局部使用原則,只是不能在其他頭文件中前置聲明,儘量不要public;3. 儘量不用全局函數和全局變量,考慮作用域和命名空

原创 VoIP - hairpinning - 髮夾

  在一般的電信通訊中,所謂“髮夾”(hairpinning)就是將來自原始終點的消息按原路徑返回,從而使消息最終能夠到達目的終點。這種方法有多種用途:     1)由於原始終點只有自己的公網IP地址,原始終點及其路由器在同一子網中無法獲

原创 同步、異步、阻塞和非阻塞

同步、異步、阻塞和非阻塞 在進行WindowsAPI(WinSock)網絡編程時,我們常常見到同步、異步、阻塞和非阻塞四種調用方式。這些方式其實都可以擴展爲廣義的概念,幫助我們理解多線程,多進程,實時操作系統等更廣的概念。同步 - syn

原创 [Tip] TAB - SPACE

在很多大公司的編碼規範中一般建議不使用TAB符,全部用四個SPACE(空格)代替,另外由於有些代碼並不是自己編寫,難免存在TAB符,所以需要進行替換。 - source insight中顯示TAB符: Options->Document

原创 Google C++編程風格指南(一):頭文件

  本指南的目的是通過詳細闡述在C++編碼時要怎樣寫、不要怎樣寫來規避其複雜性。本指南的另一個觀點是C++特性的臃腫。C++是一門包含大量高級特性的巨型語言,某些情況下,我們會限制甚至禁止使用某些特性使代碼簡化,避免可能導致的各種問題  

原创 幾種常見代碼管理工具比較(2009)

軟件配置管理(Configuration Management)是通過技術或行政手段對軟件產品及其開發過程和生命週期進行控制、規範的一系列措施。 初讀上述定義,感覺不是一點點的有點繞口,枯燥和眩暈了,實際上如果仔細去研究軟件工程的理論書

原创 一個比較好的開源目錄,包括RFC比較全的中文文檔

http://oss.org.cn/man/develop/ RFC中文文檔目錄: http://oss.org.cn/man/develop/rfc/default.htm