注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計C/C++及其相關(guān)0 bug:C/C++商用工程之道

0 bug:C/C++商用工程之道

0 bug:C/C++商用工程之道

定 價:¥68.00

作 者: 肖舸 著
出版社: 電子工業(yè)出版社
叢編項:
標 簽: VC++

ISBN: 9787121098482 出版時間: 2010-01-01 包裝: 平裝
開本: 16開 頁數(shù): 561 字數(shù):  

內(nèi)容簡介

  共分12個章節(jié),主要針對C/C++語言在商用工程開發(fā)中的程序?qū)崙?zhàn)進行論述,從商用解決方案的角度來理解C和C++語言的程序設(shè)計技巧。具體內(nèi)容包括商用工程開發(fā)思路、C/C++無錯化程序設(shè)計、設(shè)計自己的工程庫、Log日志管理系統(tǒng)等。該書可供各大專院校作為教材使用,也可供從事相關(guān)工作的人員作為參考用書使用?!? bug:C/C++商用工程之道》主要針對C/C++語言在商用工程開發(fā)中的程序?qū)崙?zhàn)進行論述,從需求出發(fā),從商用解決方案的角度來理解C和C++語言的程序設(shè)計技巧。商用程序員在實際工作中最為關(guān)注的無錯化、并行、時間片、內(nèi)存池、線程池、任務(wù)池、工程庫和跨平臺等相關(guān)問題,在《0 bug:C/C++商用工程之道》中都有寶貴的經(jīng)驗總結(jié)和理念梳理。《0 bug:C/C++商用工程之道》不是教科書,更多的是在開發(fā)技巧、測試調(diào)試、工程代碼庫等方面給出實例與總結(jié)?!? bug:C/C++商用工程之道》也可以說是教科書,作者試圖通過實戰(zhàn)技巧的訓(xùn)練,幫助讀者升華出一種全新的程序設(shè)計理念?!? bug:C/C++商用工程之道》可以幫助你擺脫“Training”式編程開發(fā)思維與方法,培養(yǎng)“商用”和“產(chǎn)品”標準的工程開發(fā)技能?!? bug:C/C++商用工程之道》適合作為C和C++的程序員進行“商用化開發(fā)”和“工程化開發(fā)”的參考。

作者簡介

暫缺《0 bug:C/C++商用工程之道》作者簡介

圖書目錄

第1章 商用工程開發(fā)思路
 1.1 系統(tǒng)分析初步
  1.1.1 需求理解和溝通
  1.1.2 “上家”和“下家”
  1.1.3 角色“定名”
  1.1.4 初步的拓撲圖
  1.1.5 后續(xù)的模塊級設(shè)計
  1.1.6 商用設(shè)計思維
 1.2 商用程序員對開發(fā)的理解
  1.2.1 資源和成本
  1.2.2 盈利導(dǎo)向
  1.2.3 客觀
  1.2.4 平衡
  1.2.5 服務(wù)
 1.3 基本開發(fā)思路
  1.3.1 邊界
  1.3.2 “細分”的分析方法
  1.3.3 靈活,逆向思維
  1.3.4 小內(nèi)核,大外延,工程庫思維
  1.3.5 單筆交易失敗不算失敗
 1.4 數(shù)據(jù)傳輸各個角色的開發(fā)思路
  1.4.1 服務(wù)器的設(shè)計原則
  1.4.2 PC客戶端的開發(fā)思路
  1.4.3 嵌入式設(shè)備的開發(fā)思路
  1.4.4 跨平臺軟件模塊的開發(fā)思路
第2章 基礎(chǔ)知識
 2.1 內(nèi)存的理解
  2.1.1 32位操作系統(tǒng)的內(nèi)存分配
  2.1.2 C/C++語言對內(nèi)存的使用
  2.1.3 內(nèi)存——bug之源
 2.2 并行運算
  2.2.1 時間片
  2.2.2 進程和線程
  2.2.3 同步和異步
  2.2.4 禮貌地釋放時間片資源
  2.2.5 跨線程通信
  2.2.6 跨進程通信
  2.2.7 網(wǎng)絡(luò),并行運算的世界
 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 跨平臺、跨語言開發(fā)基礎(chǔ)
  2.5.1 C/C++跨平臺開發(fā)基礎(chǔ)
  2.5.2 dll和so
  2.5.3 API和NPI
  2.5.4 服務(wù)無處不在
 2.6 debug的重要性
  2.6.1 在數(shù)據(jù)傳輸領(lǐng)域,你親眼看到的都不是真的
  2.6.2 如何看到——萬事從debug開始
  2.6.3 debug的原則
  2.6.4 如何分析數(shù)據(jù)
 2.7 性能統(tǒng)計的重要性
  2.7.1 需要統(tǒng)計哪些信息
  2.7.2 基本的統(tǒng)計方法
  2.7.3 隨機數(shù)的產(chǎn)生
 2.8 隊列無處不在
  2.8.1 數(shù)據(jù)結(jié)構(gòu)在數(shù)據(jù)傳輸中的應(yīng)用分析
  2.8.2 需要哪幾種隊列形式
 2.9 不要求全責(zé)備
第3章 C/C++無錯化程序設(shè)計
 3.1 “無錯化程序設(shè)計”簡介
  3.1.1 無錯化程序設(shè)計思路
  3.1.2 C/C++無錯化設(shè)計的解決方案
  3.1.3 使用后的效果
 3.2 計算機程序的真諦
  3.2.1 程序就是“搬數(shù)”
  3.2.2 程序就是“寫文章”
  3.2.3 程序就是“復(fù)制”
  3.2.4 筆者看程序設(shè)計
 3.3 定名
  3.3.1 匈牙利命名法
  3.3.2 函數(shù)命名原則
  3.3.3 變量命名原則
  3.3.4 其他命名規(guī)則
  3.3.5 定名的折中
 3.4 無錯化程序的基本書寫原則
  3.4.1 寫簡單易懂的程序
  3.4.2 嚴禁變量轉(zhuǎn)義
  3.4.3 嚴禁一語多義
  3.4.4 函數(shù)只能有一個出口
  3.4.5 變量如不使用,保持初值
  3.4.6 常量必須定名
  3.4.7 太大數(shù)組不要用靜態(tài)方式
  3.4.8 盡量避免使用遞歸
  3.4.9 解決方案一套就夠
 3.5 基本程序設(shè)計原則
  3.5.1 函數(shù)的設(shè)計
  3.5.2 類的設(shè)計
  3.5.3 其他要點
 3.6 基本語句的約定
  3.6.1 判斷語句,常量永遠在左邊
  3.6.2 for (i = 0; i < n; i + +)
  3.6.3 while(1)
  3.6.4 不要使用do...while( )
  3.6.5 i++和++i問題
  3.6.6 請不要使用“?(...) :(...)”結(jié)構(gòu)
  3.6.7 善用大括號{ }縮小作用域
 3.7 請使用goto語句
  3.7.1 函數(shù)只有一個出口的原則需要goto
  3.7.2 誰分配、誰釋放的原則需要goto
  3.7.3 商用工程要求goto
  3.7.4 程序的易讀性要求goto
  3.7.5 break為什么不能亂用
  3.7.6 goto的常規(guī)使用手法
 3.8 指針的使用原則
  3.8.1 商用數(shù)據(jù)傳輸常見的指針類型
  3.8.2 不要使用兩個以上的*號
  3.8.3 指針不能參與四則運算
 3.9 使用結(jié)構(gòu)體的技巧
  3.9.1 結(jié)構(gòu)體傳參的必要性
  3.9.2 預(yù)防多重指針的隱患
  3.9.3 32位到64位移植
  3.9.4 彈性內(nèi)存使用需要結(jié)構(gòu)體傳參
  3.9.5 網(wǎng)絡(luò)傳輸協(xié)議,需要結(jié)構(gòu)體傳參
 3.10 使用宏的建議
  3.10.1 宏的幾大作用
  3.10.2 C+ +的建議
  3.10.3 編譯宏——跨平臺開發(fā)
 3.11 回調(diào)函數(shù)設(shè)計方法
  3.11.1 回調(diào)模型設(shè)計者
  3.11.2 回調(diào)模型使用者
  3.11.3 參數(shù)傳遞的常規(guī)手法
  3.11.4 事件模型和回調(diào)模型
 3.12 C語言字符串的深入研究
  3.12.1 字符串拷貝
  3.12.2 字符串構(gòu)造
  3.12.3 關(guān)于字符串處理的結(jié)論
 3.13 C/C+ +語言無錯化程序設(shè)計小結(jié)
第4章 設(shè)計自己的工程庫
 4.1 數(shù)據(jù)傳輸庫中到底需要哪些模塊
  4.1.1 跨平臺定義
  4.1.2 鎖與安全模塊
  4.1.3 內(nèi)存池
  4.1.4 資源管理池
  4.1.5 線程池與任務(wù)池
  4.1.6 隊列管理
  4.1.7 其他工具
 4.2 工程庫基礎(chǔ)——跨平臺定義
  4.2.1 鎖定義
  4.2.2 線程控制相關(guān)定義
  4.2.3 Socket傳輸相關(guān)定義
  4.2.4 include系統(tǒng)頭文件
第5章 debug工具
 5.1 變參函數(shù)的設(shè)計
 5.2 文本輸出
  5.2.1 獲得時間戳
  5.2.2 同時輸出到文件和屏幕
  5.2.3 文本輸出的原則
 5.3 二進制輸出的debug函數(shù)
 5.4 核心debug和日志系統(tǒng)的區(qū)別
 5.5 統(tǒng)計模塊
  5.5.1 累加器
  5.5.2 計算模塊
  5.5.3 平均值計算
  5.5.4 統(tǒng)計平均值計算
  5.5.5 輔助功能函數(shù)
 5.6 CLowDebug工具類
  5.6.1 需求分析
  5.6.2 數(shù)據(jù)邊界聲明
  5.6.3 類聲明
  5.6.4 類工具函數(shù)
  5.6.5 業(yè)務(wù)函數(shù)
 5.7 基本debug工具小結(jié)
第6章 鎖
 6.1 二元動作理論
  6.1.1 二元動作在C語言中的書寫特性
  6.1.2 面向?qū)ο蠛兔嫦蜻^程的本質(zhì)差異
  6.1.3 二元動作在C++語言中的特殊要求
  6.1.4 二元動作開發(fā)關(guān)注要點
 6.2 鎖對象
 6.3 多線程安全的變量
  6.3.1 CMint和CMbool試驗
  6.3.2 多線程安全的變量模板
 6.4 單寫多讀鎖
  6.4.1 單寫多讀鎖的來源
  6.4.2 單寫多讀鎖C語言實現(xiàn)
  6.4.3 單寫多讀鎖的C++實現(xiàn)
  6.4.4 TonyXiaoMinSleep
  6.4.5 單寫多讀鎖安全變量
  6.4.6 單寫多讀鎖的真實意義
 6.5 不可重入鎖
  6.5.1 需求分析
  6.5.2 類實現(xiàn)
  6.5.3 使用樣例
 6.6 線程控制鎖
  6.6.1 線程控制鎖的實現(xiàn)
  6.6.2 線程控制鎖的使用
 6.7 盡量不用鎖
第7章 內(nèi)存與資源管理
 7.1 內(nèi)存管理的基本要求
  7.1.1 不泄露
  7.1.2 不產(chǎn)生碎片
  7.1.3 可以自動報警
 7.2 內(nèi)存池的核心邏輯——內(nèi)存棧
  7.2.1 內(nèi)存管理的數(shù)學(xué)模型
  7.2.2 管理模型的優(yōu)化
  7.2.3 關(guān)于鏈表管理的思考
  7.2.4 內(nèi)存塊元素
  7.2.5 內(nèi)存棧
 7.3 內(nèi)存指針注冊管理模塊
  7.3.1 內(nèi)存注冊模塊原理介紹
  7.3.2 模塊設(shè)計及類聲明
  7.3.3 構(gòu)造函數(shù)和析構(gòu)函數(shù)
  7.3.4 Add函數(shù)
  7.3.5 Del函數(shù)
  7.3.6 Modeify函數(shù)
  7.3.7 PrintInfo函數(shù)
  7.3.8 內(nèi)存注冊模塊的深入使用
 7.4 Socket注冊管理模塊
  7.4.1 類聲明
  7.4.2 構(gòu)造函數(shù)和析構(gòu)函數(shù)
  7.4.3 Add函數(shù)
  7.4.4 Del函數(shù)
  7.4.5 PrintInfo函數(shù)
 7.5 內(nèi)存池類
  7.5.1 類聲明
  7.5.2 構(gòu)造函數(shù)和析構(gòu)函數(shù)
  7.5.3 內(nèi)存棧公有方法
  7.5.4 指針管理方法
  7.5.5 Socket管理方法
  7.5.6 PrintfInfo方法
 7.6 內(nèi)存管理的深層次含義
  7.6.1 資源重用的理念
  7.6.2 注冊和反注冊機制
  7.6.3 靜態(tài)資源的管理思路
 7.7 被動池的常見組織形式
  7.7.1 被動池的數(shù)據(jù)特性及需求分析
  7.7.2 動態(tài)與靜態(tài)被動池的差異性
  7.7.3 靜態(tài)被動池實施原理
  7.7.4 被動池的常見組織形式
第8章 隊列
 8.1 為什么單說隊列
  8.1.1 網(wǎng)絡(luò)同步的需求
  8.1.2 協(xié)議信令排序的需求
  8.1.3 存儲轉(zhuǎn)發(fā)的需求
  8.1.4 異步轉(zhuǎn)同步需要隊列
  8.1.5 負載均衡需要隊列
  8.1.6 等停需要隊列
  8.1.7 特例:實時轉(zhuǎn)發(fā)不需要隊列
 8.2 幾種常見的隊列介紹
  8.2.1 不是隊列的隊列CBuffer
  8.2.2 靜態(tài)隊列PopBuffer
  8.2.3 動態(tài)隊列MenQueue
 8.3 動態(tài)Buffer類
  8.3.1 編程思想的轉(zhuǎn)變
  8.3.2 Buffer類的需求分析
  8.3.3 Buffer類聲明
  8.3.4 構(gòu)造和析構(gòu)函數(shù)
  8.3.5 緩沖區(qū)大小設(shè)置函數(shù)
  8.3.6 二進制拷貝函數(shù)
  8.3.7 數(shù)值轉(zhuǎn)換函數(shù)
  8.3.8 二進制數(shù)據(jù)處理函數(shù)
  8.3.9 文本字符串處理函數(shù)
  8.3.10 數(shù)據(jù)比較函數(shù)
  8.3.11 小結(jié)
 8.4 靜態(tài)Buffer類
  8.4.1 類聲明
  8.4.2 構(gòu)造函數(shù)和析構(gòu)函數(shù)
  8.4.3 緩沖區(qū)設(shè)置函數(shù)
  8.4.4 二進制拷貝函數(shù)
  8.4.5 數(shù)值轉(zhuǎn)換函數(shù)
  8.4.6 二進制數(shù)據(jù)處理函數(shù)
  8.4.7 文本字符串處理函數(shù)
  8.4.8 數(shù)據(jù)比較函數(shù)
  8.4.9 小結(jié)
 8.5 PopBuffer
  8.5.1 PopBuffer基本需求分析
  8.5.2 基本數(shù)據(jù)結(jié)構(gòu)介紹
  8.5.3 基本類模型
  8.5.4 構(gòu)造函數(shù)和析構(gòu)函數(shù)
  8.5.5 工具服務(wù)函數(shù)
  8.5.6 業(yè)務(wù)查詢函數(shù)
  8.5.7 添加AddLast
  8.5.8 提取GetAndDeleteFirst
  8.5.9 MoveAllData
  8.5.10 PopBuffer小結(jié)
  8.5.11 PopBuffer的不足
 8.6 MemQueue
  8.6.1 動態(tài)隊列的管理原則
  8.6.2 基本數(shù)據(jù)結(jié)構(gòu)介紹以及優(yōu)化考慮
  8.6.3 基本功能類聲明
  8.6.4 構(gòu)造函數(shù)和析構(gòu)函數(shù)
  8.6.5 輔助工具函數(shù)
  8.6.6 追加AddLast
  8.6.7 提取GetAndDeleteFirst
  8.6.8 PopBuffer相關(guān)操作
  8.6.9 文件保存相關(guān)操作
  8.6.10 線程安全鎖封裝類
 8.7 小結(jié)
第9章 時間片管理
 9.1 多線程與單線程開發(fā)的差異
  9.1.1 單任務(wù)操作系統(tǒng)運行程序的特點
  9.1.2 任天堂游戲機中斷機制
  9.1.3 利用中斷實現(xiàn)多任務(wù)
  9.1.4 多任務(wù)操作系統(tǒng)運行程序的特點
  9.1.5 多任務(wù)操作系統(tǒng)運行程序的機制
  9.1.6 多任務(wù)運行環(huán)境的世界觀
 9.2 多任務(wù)操作系統(tǒng)常見線程操作
  9.2.1 線程相關(guān)變量
  9.2.2 線程函數(shù)聲明
  9.2.3 線程函數(shù)啟動
  9.2.4 MIN_SLEEP
  9.2.5 線程操作總結(jié)
 9.3 線程池
  9.3.1 線程池的來源和需求分析
  9.3.2 線程池的設(shè)計原理
  9.3.3 線程池的基本數(shù)據(jù)結(jié)構(gòu)
  9.3.4 線程池的類設(shè)計說明
  9.3.5 構(gòu)造函數(shù)和析構(gòu)函數(shù)
  9.3.6 管理者線程
  9.3.7 服務(wù)者線程
  9.3.8 注冊函數(shù)
  9.3.9 線程池小結(jié)
 9.4 任務(wù)池
  9.4.1 任務(wù)池的原理分析
  9.4.2 任務(wù)池的需求和設(shè)計
  9.4.3 任務(wù)池的基本定義說明
  9.4.4 任務(wù)池的類聲明
  9.4.5 構(gòu)造函數(shù)和析構(gòu)函數(shù)
  9.4.6 管理者線程
  9.4.7 服務(wù)者線程
  9.4.8 任務(wù)注冊接口
  9.4.9 任務(wù)池的小結(jié)及實現(xiàn)示例
 9.5 任務(wù)池的運行體
  9.5.1 簡化運行態(tài)
  9.5.2 任務(wù)描述工具類
  9.5.3 任務(wù)池運行體的設(shè)計原理
  9.5.4 任務(wù)池運行體的類聲明
  9.5.5 StartTask
  9.5.6 StopAll和PrintInfo
  9.5.7 任務(wù)執(zhí)行線程回調(diào)
  9.5.8 任務(wù)池運行體小結(jié)及調(diào)用示例
 9.6 時間片小結(jié)
第10章 Log日志管理系統(tǒng)
 10.1 日志管理系統(tǒng)需求分析
 10.2 設(shè)計原理和邊界定義
 10.3 類聲明
 10.4 構(gòu)造函數(shù)和析構(gòu)函數(shù)
  10.4.1 構(gòu)造函數(shù)
  10.4.2 析構(gòu)函數(shù)
 10.5 文件名控制邏輯
 10.6 業(yè)務(wù)輸出方法函數(shù)
 10.7 Log日志系統(tǒng)小結(jié)
第11章 聚合工具類
 11.1 聚合工具類的類聲明
 11.2 聚合工具類函數(shù)說明
 11.3 額外的話題:Linux服務(wù)程序怎么寫
  11.3.1 服務(wù)器的開發(fā)習(xí)慣
  11.3.2 Linux的開發(fā)習(xí)慣
  11.3.3 Linux下開發(fā)服務(wù)程序的基本需求
  11.3.4 基本設(shè)計原理
  11.3.5 程序?qū)崙?zhàn)演示
  11.3.6 程序使用說明
第12章 細節(jié)決定成敗(代結(jié)束語)
 12.1 工程實踐注重細節(jié)
 12.2 究竟怎樣才能學(xué)好C和C++語言開發(fā)
 12.3 如何做一名成功的軟件工程師
 12.4 關(guān)于網(wǎng)絡(luò)數(shù)據(jù)傳輸
 12.5 結(jié)束語

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號