第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; i