扉页
前言
1.1  为什么要写本书?
1.2  本书包括哪些内容
1.3  商用工程开发和软件编程的区别
1.4   商用程序员的核心思想
1.5  本书适合哪些读者看
1.6  本书中一些名词解释
第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.3.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.5  常量必须定名
3.4.6  太大数组不要用静态方式
3.4.7  尽量避免使用递归
3.4.8  解决方案一套就够
3.5  基本程序设计原则
3.5.1  函数的设计
3.5.2  类的设计
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  请不要使用“?(...) :(…)”结构
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.3  事件模型和回调模型
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.7  队列管理
4.1.8  其他工具
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  面向对象(OO)和面向过程(OP)的本质差异
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语言实现
6.4.2  单写多读锁的C++实现
6.4.3  TonyXiaoMinSleep
6.4.3  单写多度锁安全变量
6.4.4  单写多读锁的真实意义
6.5  不可重入锁
6.5.1  需求分析
6.5.2  类实现
6.5.3  使用样例
6.6  线程控制锁
6.6.1  线程控制锁的实现
6.6.2  线程控制锁的使用
6.7  尽量不用锁
第7章  内存及资源管理
7.1  内存管理的基本要求
7.1.1  不泄露
7.1.2  不产生碎片
7.1.3  可以自动报警
7.2  内存池的核心逻辑—内存栈
7.2.1  内存管理的数学模型
7.2.2  管理模型的优化
7.2.3  关于链表管理的思考
7.2.4  内存块元素
7.2.5  内存栈
7.3  内存指针注册管理模块
7.3.1  内存注册模块原理介绍
7.3.2  模块设计及类声明
7.3.3  构造函数和析构函数
7.3.4  Add函数
7.3.5  Del函数
7.3.6  Modeify函数
7.3.7  PrintInfo函数
7.3.8  内存注册模块的深入使用
7.4  Socket注册管理模块
7.4.1  类声明
7.4.2  构造函数和析构函数
7.4.3  Add函数
7.4.4  Del函数
7.4.5  PrintInfo函数
7.5  内存池类
7.5.1  类声明
7.5.2  构造函数和析构函数
7.5.3  内存栈公有方法
7.5.4  指针管理方法
7.5.5  Socket管理方法
7.5.6  PrintfInfo方法
7.6  内存管理的深层次含义
7.6.1  资源重用的理念
7.6.2  注册和反注册机制
7.6.3  静态资源的管理思路
7.7  被动池的常见组织形式
7.7.1  被动池的数据特性及需求分析
7.7.2  动态与静态被动池的差异性
7.7.3  静态被动池实施原理
7.7.4  被动池的常见组织形式
第8章  队列
8.1  为什么单说队列
8.1.1  网络同步的需求
8.1.2  协议信令排序的需求
8.1.3  存储转发的需求
8.1.4  异步转同步需要队列
8.1.5  负载均衡需要队列
8.1.6  等停需要队列
8.1.7  特例:实时转发不需要队列
8.2  几种常见的队列介绍
8.2.1  不是队列的队列CBuffer
8.2.2  静态队列PopBuffer
8.2.3  动态队列MenQueue
8.3  动态Buffer类
8.3.1  编程思想的转变
8.3.2  Buffer类的需求分析
8.3.3  Buffer类声明
8.3.4  构造和析构函数
8.3.5  缓冲区大小设置函数
8.3.6  二进制拷贝函数
8.3.7  数值转换函数
8.3.8  二进制数据处理函数
8.3.9  文本字符串处理函数
8.3.10  数据比较函数
8.3.11  小结
8.4  静态Buffer类
8.4.1  类声明
8.4.2  构造函数和析构函数
8.4.3  缓冲区设置函数
8.4.4  二进制拷贝函数
8.4.5  数值转换函数
8.4.6  二进制数据处理函数
8.4.7  文本字符串处理函数
8.4.8  数据比较函数
8.4.9  小结
8.5  PopBuffer
8.5.1  PopBuffer基本需求分析
8.5.2  基本数据结构介绍
8.5.3  基本类模型
8.5.4  构造函数和析构函数
8.5.5  工具服务函数
8.5.6  业务查询函数
8.5.7  添加AddLast
8.5.8  提取GetAndDeleteFirst
8.5.9  MoveAllData
8.5.10  PopBuffer小结
8.6  MemQueue
8.6.1  动态队列的管理原则
8.6.2  基本数据结构介绍以及优化考虑
8.6.3  基本功能类声明
8.6.4  构造函数和析构函数
8.6.5  辅助工具函数
8.6.6  追加AddLast
8.6.7  提取GetAndDeleteFirst
8.6.8  PopBuffer相关操作
8.6.9  文件保存相关操作
8.6.10  线程安全锁封装类
8.7  关于队列的小结
第9章  时间片管理
9.1  多线程与单线程开发的差异
9.1.1  单任务操作系统运行程序的特点
9.1.2  任天堂游戏机中断机制
9.1.3  利用中断实现多任务
9.1.4  多任务操作系统运行程序的特点
9.1.5  多任务操作系统运行程序的机制
9.1.6  多任务运行环境的世界观
9.2  多任务操作系统常见线程操作
9.2.1  线程相关变量
9.2.2  线程函数声明
9.2.3  线程函数启动
9.2.4  MIN_SLEEP
9.2.5  线程操作总结
9.2  线程池
9.2.1  线程池的来源和需求分析
9.2.2  线程池的设计原理
9.2.3  线程池的基本数据结构
9.2.4  线程池的类设计说明
9.2.5  构造函数和析构函数
9.2.4  管理者线程
9.2.5  服务者线程
9.2.6  注册函数
9.2.7  线程池小结
9.4  任务池
9.4.1  任务池的原理分析
9.4.2  任务池的需求和设计
9.4.3  任务池的基本定义说明
9.4.4  任务池的类声明
9.4.5  构造函数和析构函数
9.4.6  管理者线程
9.4.7  服务者线程
9.4.4  任务注册接口
9.4.4  任务池的小结及实现示例
9.5  任务池的运行体
9.5.1  简化运行态
9.5.2  任务描述工具类
9.5.3  任务池运行体的设计原理
9.5.4  任务池运行体的类声明
9.5.5  StartTask
9.5.6  StopAll和PrintInfo
9.5.7  任务执行线程回调
9.5.8  任务池运行体小结及调用示例
9.6  时间片小结
第10章  Log日志管理系统
10.1  日志管理系统需求分析
10.2  设计原理和边界定义
10.3  类声明
10.4  构造函数和析构函数
10.4.1  构造函数
10.4.2  析构函数
10.5  文件名控制逻辑
10.6  业务输出方法函数
10.7  Log日志系统小结
第11章  聚合工具类
11.1  聚合工具类的类声明
11.2  聚合工具类函数说明
11.3  额外的话题:Linux服务程序怎么写?
11.3.1  服务器的开发习惯
11.3.2  Linux的开发习惯
11.3.3  Linux下开发服务程序的基本需求
11.3.4  基本设计原理
11.3.5  程序实战演示
11.3.6  程序使用说明
第12章  细节决定成败(代结束语)
12.1  工程实践注重细节
12.2  究竟怎样才能学好C和C++语言开发
12.3  如何做一个成功的软件工程师
12.4  关于网络数据传输
12.4  结束语
=======================================================
在线底价购买《0bug-C/C++商用工程之道》
(直接点击下面链接或拷贝到浏览器地址栏)
http://s.click.taobao.com/t_3?&p=mm_13866629_0_0&n=23&l=http%3A%2F%2Fsearch8.taobao.com%2Fbrowse%2F0%2Fn-g%2Corvv64tborsvwmjvgawdkmbqgboq---g%2Cgaqge5lhebbs6qzlfmqmttgtyo42jm6m22xllqa-------------1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%2C12%2C13%2C14%2C15%2C16%2C17%2C18%2C19%2C20---40--coefp-0-all-0.htm%3Fpid%3Dmm_13866629_0_0
肖舸

《0 bug ---- C/C++商用工程之道》目录相关推荐

  1. 《分形算法与程序设计》目录

    第1章 分形简介 1 1.1 分形概念的提出与分形理论的建立 1 1.2 分形的几何特征 1 1.3 分形的测量 4 1.4 自然界中的分形 7 1.5 分形是一种方法论 8 1.6 分形与计算机图形 ...

  2. 基于区域生长算法的图像分割python_图像分割中区域生长算法的程序设计与实现...

    论文编号:DZXX399  论文字数:12586,页数:30 摘要 本课题主要研究图像分割中区域生长算法的程序设计与实现.开发工具选用VC++6.0.通过VC++6.0开发环境中的常用向导和MFC类库 ...

  3. 【分形算法】Jason带你飞之1——LS文法的java实现

    2019独角兽企业重金招聘Python工程师标准>>> 最近老师叫研究分形算法,还提供了一个以前的java源码(http://pan.baidu.com/s/1qWqKe5Y)供参考 ...

  4. 江南大学考研专业课851算法与程序设计_2012年真题

    文章目录 第一题: 思路: 答案: 第二题: 思路: 答案: 第三题: 思路: 答案: 第四题: 思路: 答案: 第五题: 思路: 答案: 第六题: 思路: 答案: 第七题: 思路: 答案 第八题: ...

  5. 算法与程序设计(六):分支限界法

    目录 一.概念 1.1 分支限界法的基本思想 1.2 分支限界法与回溯法的不同 1.3 分支限界法的搜索方式 1.4 常见的两种分支限界法 二.举例 2.1 单源最短路径问题 三.代码实现 3.1 源 ...

  6. 算法与程序设计(五):回溯法

    目录 背景 一.概念 1.1 回溯法的算法框架 1.2 详解说明 二.举例 2.1 批作业调度问题 2.2 装载问题 背景 一.概念 回溯法有"通用解题法"之称,用它可以系统地搜索 ...

  7. 算法与程序设计(四):贪心算法

    目录 一.概念 1.1 贪心算法的基本要素 1.1.1 贪心选择性质 1.1.2 最优子结构性质 1.2 贪心算法与动态规划算法的差异 二.举例 2.1 活动安排问题 2.2 最优装载问题 2.3 哈 ...

  8. 算法与程序设计(三):动态规划算法

    目录 一.概念 1.1 动态规划算法的基本要素 1.2 动态规划算法的步骤 二.举例 2.1 矩阵连乘问题 2.1.1 穷举法 2.1.2 动态规划法 2.1.3 例题 2.2 图像压缩问题 2.3 ...

  9. 算法与程序设计(二):递归

    目录 一.递归的概念 二.举例 2.1 阶乘函数 2.2 Fibonacci数列 2.3 Ackerman函数 2.4 整数划分问题 三.实现方法(Java程序) 3.1 阶乘函数 3.2 Fibon ...

  10. 算法与程序设计(一):主定理

    目录 一.主定理的概念 二.举例 2.1 求解递推方程(case1) 2.2 求解递推方程(case2) 2.3 求解递推方程(case3) 2.4 不能使用主定理的例子 一.主定理的概念 二.举例 ...

最新文章

  1. Java 分布式系统下的 9 点设计与实现
  2. Cell Press | 研究人员致力于创建COVID-19病毒表位图
  3. AS3 鼠标指针样式
  4. NASA宣布发现 “第2个地球”
  5. 数据结构——二叉树的递归算法
  6. 【十二省联考2019】字符串问题【后缀自动机】【拓扑排序】
  7. Vue学习心得记录之模板语法
  8. mysql管理应用_如何在PHP和MySQL中制作出色的库存管理应用程序
  9. 05NumPy--5.4随机数
  10. 创建和管理CVSNT服务器的步骤
  11. 安装包 — 夜神模拟器下载地址
  12. SSH项目搭建-02-配置文件
  13. 完善的WebGis地图编辑器
  14. 谈谈计算机专业职业技能,计算机专业职业技能论文
  15. python 逻辑回归_不会Python没问题!用Excel实现简单的逻辑回归!
  16. 测试后台管理系统思路和方法
  17. VC++编程实现镜像劫持
  18. 跟王佩丰学习VBA-纯代码(1-8讲)
  19. 神经网络程序设计课学习心得
  20. k8s源码分析 pdf_我是怎么阅读kubernetes源代码的?

热门文章

  1. vue和layui哪个更好用_幕布和Mind+思维导图哪个更好用?
  2. python处理json数据 乱码报错_python操作mysql中文显示乱码的解决方法
  3. ami编码设计流程图_Openplant智慧电厂BIM设计-很强大(艾三维BIM分享)
  4. 案例式c语言程序设计陈明,C语言程序设计教程 清华大学出版社 陈明主编 第1章答案...
  5. java 自定义 转换器_Java笔记之SpringMVC(七):自定义String到Date的类型转换器
  6. 西门子S7以太网通讯协议
  7. Harvard's CS50
  8. UVA 1646 Edge Case
  9. hibernate 管理 Session(单独使用session,非spring)
  10. JavaScript 面试中常见算法问题详解