《C/C++商用工程之道》是 2010年01月電子工業出版社出版的圖書,作者是肖舸。
基本介紹
- 書名:C/C++商用工程之道
- 作者:肖舸
- ISBN:9787121098482
- 定價:68.00 元
- 出版社:電子工業出版社
- 出版時間:2010年01月
- 開本:16開
內容簡介,圖書目錄,
內容簡介
《0 bug:C/C++商用工程之道》共分12個章節,主要針對C/C++語言在商用工程開發中的程式實戰進行論述,從商用解決方案的角度來理解C和C++語言的程式設計技巧。具體內容包括商用工程開發思路、C/C++無錯化程式設計、設計自己的工程庫、Log日誌管理系統等。該書可供各大專院校作為教材使用,也可供從事相關工作的人員作為參考用書使用。《0 bug:C/C++商用工程之道》主要針對C/C++語言在商用工程開發中的程式實戰進行論述,從需求出發,從商用解決方案的角度來理解C和C++語言的程式設計技巧。商用程式設計師在實際工作中最為關注的無錯化、並行、時間片、記憶體池、執行緒池、任務池、工程庫和跨平台等相關問題,在《0 bug:C/C++商用工程之道》中都有寶貴的經驗總結和理念梳理。《0 bug:C/C++商用工程之道》不是教科書,更多的是在開發技巧、測試調試、工程代碼庫等方面給出實例與總結。《0 bug:C/C++商用工程之道》也可以說是教科書,作者試圖通過實戰技巧的訓練,幫助讀者升華出一種全新的程式設計理念。《0 bug:C/C++商用工程之道》可以幫助你擺脫“Training”式編程開發思維與方法,培養“商用”和“產品”標準的工程開發技能。
《0 bug:C/C++商用工程之道》適合作為C和C++的程式設計師進行“商用化開發”和“工程化開發”的參考。
圖書目錄
第1章 商用工程開發思路
1.1 系統分析初步
1.1.1 需求理解和溝通
1.1.2 “上家”和“下家”
1.1.3 角色“定名
1.1.4 初步的拓撲圖
1.1.5 後續的模組級設計
1.1.6 商用設計思維
1.2 商用程式設計師對開發的理解
1.2.1 資源和成本
1.2.2 盈利導向
1.2.3 客觀
1.2.4 平衡
1.2.5 服務
1.3 基本開發思路
1.3.1 邊界
1.3.2 “細分”的分析方法
1.3.3 靈活,逆向思維
1.3.4 小核心,大外延,工程庫思維
1.3.5 單筆交易失敗不算失敗
1.4 數據傳輸各個角色的開發思路
1.4.1 伺服器的設計原則
1.4.2 PC客戶端的開發思路
1.4.3 嵌入式設備的開發思路
1.4.4 跨平台軟體模組的開發思路
第2章 基礎知識
2.1 記憶體的理解
2.1.1 32位作業系統的記憶體分配
2.1.2 C/C++語言對記憶體的使用
2.1.3 記憶體——bug之源
2.2 並行運算
2.2.1 時間片
2.2.2 進程和執行緒
2.2.3 同步和異步
2.2.4 禮貌地釋放時間片資源
2.2.5 跨執行緒通信
2.2.6 跨進程通信
2.2.7 網路,並行運算的世界
2.3 “鎖”的使用
2.3.1 為什麼要使用鎖
2.3.2 使用鎖容易犯什麼錯誤
2.3.3 “行為鎖”和“資源鎖”
2.3.4 單寫多讀鎖
2.3.5 不可重入鎖
2.3.6 用鎖的最高境界——不用
2.4 “池”的深刻含義
2.4.1 “池”的由來
2.4.2 “池”的使用
2.5 跨平台、跨語言開發基礎
2.5.1 C/C++跨平台開發基礎
2.5.2 dll和so
2.5.3 API和NPI
2.5.4 服務無處不在
2.6 debug的重要性
2.6.1 在數據傳輸領域,你親眼看到的都不是真的
2.6.2 如何看到——萬事從debug開始
2.6.3 debug的原則
2.6.4 如何分析數據
2.7 性能統計的重要性
2.7.1 需要統計哪些信息
2.7.2 基本的統計方法
2.7.3 隨機數的產生
2.8 佇列無處不在
2.8.1 數據結構在數據傳輸中的套用分析
2.8.2 需要哪幾種佇列形式
2.9 不要求全責備
第3章 C/C++無錯化程式設計
3.1 “無錯化程式設計”簡介
3.1.1 無錯化程式設計思路
3.1.2 C/C++無錯化設計的解決方案
3.1.3 使用後的效果
3.2 電腦程式的真諦
3.2.1 程式就是“搬數”
3.2.2 程式就是“寫文章”
3.2.3 程式就是“複製”
3.2.4 筆者看程式設計
3.3 定名
3.3.1 匈牙利命名法
3.3.2 函式命名原則
3.3.3 變數命名原則
3.3.4 其他命名規則
3.3.5 定名的折中
3.4 無錯化程式的基本書寫原則
3.4.1 寫簡單易懂的程式
3.4.2 嚴禁變數轉義
3.4.3 嚴禁一語多義
3.4.4 函式只能有一個出口
3.4.5 變數如不使用,保持初值
3.4.6 常量必須定名
3.4.7 太大數組不要用靜態方式
3.4.8 儘量避免使用遞歸
3.4.9 解決方案一套就夠
3.5 基本程式設計原則
3.5.1 函式的設計
3.5.2 類的設計
3.5.3 其他要點
3.6 基本語句的約定
3.6.1 判斷語句,常量永遠在左邊
3.6.2 for(i=0;i3.6.3 while(1)
3.6.4 不要使用do...while()
3.6.5 i++和++i問題
3.6.6 請不要使用“?(...):(...)”結構
3.6.7 善用大括弧{}縮小作用域
3.7 請使用goto語句
3.7.1 函式只有一個出口的原則需要goto
3.7.2 誰分配、誰釋放的原則需要goto
3.7.3 商用工程要求goto
3.7.4 程式的易讀性要求goto
3.7.5 break為什麼不能亂用
3.7.6 goto的常規使用手法
3.8 指針的使用原則
3.8.1 商用數據傳輸常見的指針類型
3.8.2 不要使用兩個以上的*號
3.8.3 指針不能參與四則運算
3.9 使用結構體的技巧
3.9.1 結構體傳參的必要性
3.9.2 預防多重指針的隱患
3.9.3 32位到64位移植
3.9.4 彈性記憶體使用需要結構體傳參
3.9.5 網路傳輸協定,需要結構體傳參
3.10 使用宏的建議
3.10.1 宏的幾大作用
3.10.2 C++的建議
3.10.3 編譯宏——跨平台開發
3.11 回調函式設計方法
3.11.1 回調模型設計者
3.11.2 回調模型使用者
3.11.3 參數傳遞的常規手法
3.11.4 事件模型和回調模型
3.12 C語言字元串的深入研究
3.12.1 字元串拷貝
3.12.2 字元串構造
3.12.3 關於字元串處理的結論
3.13 C/C++語言無錯化程式設計小結
第4章 設計自己的工程庫
4.1 數據傳輸庫中到底需要哪些模組
4.1.1 跨平台定義
4.1.2 鎖與安全模組
4.1.3 記憶體池
4.1.4 資源管理池
4.1.5 執行緒池與任務池
4.1.6 佇列管理
4.1.7 其他工具
4.2 工程庫基礎——跨平台定義
4.2.1 鎖定義
4.2.2 執行緒控制相關定義
4.2.3 Socket傳輸相關定義
4.2.4 include系統頭檔案
第5章 debug工具
5.1 變參函式的設計
5.2 文本輸出
5.2.1 獲得時間戳
5.2.2 同時輸出到檔案和螢幕
5.2.3 文本輸出的原則
5.3 二進制輸出的debug函式
5.4 核心debug和日誌系統的區別
5.5 統計模組
5.5.1 累加器
5.5.2 ?計算模組
5.5.3 平均值計算
5.5.4 統計平均值計算
5.5.5 輔助功能函式
5.6 CLowDebug工具類
5.6.1 需求分析
5.6.2 數據邊界聲明
5.6.3 類聲明
5.6.4 類工具函式
5.6.5 業務函式
5.7 基本debug工具小結
第6章 鎖
6.1 二元動作理論
6.1.1 二元動作在C語言中的書寫特性
6.1.2 面向對象和面向過程的本質差異
6.1.3 二元動作在C++語言中的特殊要求
6.1.4 二元動作開發關注要點
6.2 鎖對象
6.3 多執行緒安全的變數
6.3.1 CMint和CMbool試驗
6.3.2 多執行緒安全的變數模板
6.4 單寫多讀鎖
6.4.1 單寫多讀鎖的來源
6.4.2 單寫多讀鎖C語言實