更新时间:2020-03-31 15:37:32
封面
版权信息
前言
献辞
第1章 商用工程开发思路
1.1 系统分析初步
1.2 商用程序员对开发的理解
1.3 基本开发思路
1.4 数据传输各个角色的开发思路
第2章 基础知识
2.1 内存的理解
2.2 并行运算
2.3 “锁”的使用
2.4 “池”的深刻含义
2.5 跨平台、跨语言开发基础
2.6 debug的重要性
2.7 性能统计的重要性
2.8 队列无处不在
2.9 不要求全责备
第3章 C/C++无错化程序设计
3.1 “无错化程序设计”简介
3.2 计算机程序的真谛
3.3 定名
3.4 无错化程序的基本书写原则
3.5 基本程序设计原则
3.6 基本语句的约定
3.7 请使用goto语句
3.8 指针的使用原则
3.9 使用结构体的技巧
3.10 使用宏的建议
3.11 回调函数设计方法
3.12 C语言字符串的深入研究
3.13 C/C++语言无错化程序设计小结
第4章 设计自己的工程库
4.1 数据传输库中到底需要哪些模块
4.2 工程库基础——跨平台定义
第5章 debug工具
5.1 变参函数的设计
5.2 文本输出
5.3 二进制输出的debug函数
5.4 核心debug和日志系统的区别
5.5 统计模块
5.6 CLowDebug工具类
5.7 基本debug工具小结
第6章 锁
6.1 二元动作理论
6.2 锁对象
6.3 多线程安全的变量
6.4 单写多读锁
6.5 不可重入锁
6.6 线程控制锁
6.7 尽量不用锁
第7章 内存与资源管理
7.1 内存管理的基本要求
7.2 内存池的核心逻辑——内存栈
7.3 内存指针注册管理模块
7.4 Socket注册管理模块
7.5 内存池类
7.6 内存管理的深层次含义
7.7 被动池的常见组织形式
第8章 队列
8.1 为什么单说队列
8.2 几种常见的队列介绍
8.3 动态Buffer类
8.4 静态Buffer类
8.5 PopBuffer
8.6 MemQueue
8.7 小结
第9章 时间片管理
9.1 多线程与单线程开发的差异
9.2 多任务操作系统常见线程操作
9.3 线程池
9.4 任务池
9.5 任务池的运行体
9.6 时间片小结
第10章 Log日志管理系统
10.1 日志管理系统需求分析
10.2 设计原理和边界定义
10.3 类声明
10.4 构造函数和析构函数
10.5 文件名控制逻辑
10.6 业务输出方法函数
10.7 Log日志系统小结
第11章 聚合工具类
11.1 聚合工具类的类声明
11.2 聚合工具类函数说明
11.3 额外的话题:Linux服务程序怎么写
第12章 细节决定成败(代结束语)
12.1 工程实践注重细节
12.2 究竟怎样才能学好C和C++语言开发
12.3 如何做一名成功的软件工程师
12.4 关于网络数据传输
12.5 结束语