《编程匠艺》中随处可见与编程语言无关、但是与所有开发人员都相关的建议,其内容遍及编程的各个要素,如代码风格、变量命名、错误处理和安全性等。不仅如此,它还触及了一些更广泛的现实世界编程问题,如有效的团队合作、开发过程和文档编写,等等。《Code Craft编程匠艺——编写卓越的代码》各章末尾均有一个问题和答案部分,这些部分回顾了各章中的一些关键概念,促使你像专家一样思考,从而使这《Code Craft编程匠艺——编写卓越的代码》成为那些渴望作为团队的一分子、专业并高效地编程的新手们的一本绝佳的参考书。
如果你可以编写出合格的代码,但是想更进一步、创作出组织良好而且易于理解的代码,并希望成为一名真正的编程专家或提高现有的职业技能,那么《编程匠艺——编写卓越的代码》都会为你给出答案。本书的内容遍及编程的各个要素,如代码风格、变量命名、错误处理和安全性等。此外,本书还对一些更广泛的编程问题进行了探讨,如有效的团队合作、开发过程和文档编写,等等。本书各章的末尾均提供一些思考问题,这些问题回顾了各章中的一些关键概念,可以促使你像专家一样思考,从而使本书成为那些渴望作为团队的一分子,职业并高效地编程的新手们的一本绝佳的参考书。
第Ⅰ篇 代码表面
第1章 善于防守——健壮代码的防御性编程技巧
1.1 向优秀的代码前进
1.2 设想:最坏的选择
1.3 什么是防御性编程
1.4 又大又坏的世界
1.5 防御性编程技巧
1.5.1 使用好的编码风格和合理的设计
1.5.2 不要仓促地编写代码
1.5.3 不要相信任何人
1.5.4 编码的目标是清晰,而不是简洁
1.5.5 不要让任何人做他们不该做的修补工作
1.5.6 编译时打开所有警告开关
1.5.7 使用静态分析工具
1.5.8 使用安全的数据结构
1.5.9 检查所有的返回值
1.5.10 审慎地处理内存(和其他宝贵的资源)
1.5.11 在声明位置初始化所有变量
1.5.12 尽可能推迟一些声明变量
1.5.13 使用标准语言工具
1.5.14 使用好的诊断信息日志工具
1.5.15 审慎地进行强制转换
1.5.16 细则
1.6 约束
1.6.1 约束的内容
1.6.2 移除约束
1.7 总结
1.8 另请参见
1.9 思考
1.9.1 深入思考
1.9.2 结合自己
第2章 精心布局——源代码的版面和样式
2.1 什么是关键
2.2 了解你的读者
2.3 什么是好的样式
2.4 使用括号
2.4.1 K&R括号风格
2.4.2 悬挂式的括号风格
2.4.3 缩进的括号风格
2.4.4 其他的括号风格
2.5 主宰一切的风格
2.6 内部风格(以及在哪里使用它们)
2.7 设立标准
2.8 正义的战争
2.9 总结
2.10 另请参见
2.11 思考
2.11.1 深入思考
2.11.2 结合自己
第3章 名正言顺——为有意义的事物起有意义的名称
3.1 为什么我们应该恰当地命名呢
3.2 我们对什么进行命名
3.3 名字游戏
3.3.1 描述性
3.3.2 技术上正确
3.3.3 符合语言习惯
3.3.4 恰当
3.4 具体细节
3.4.1 命名变量
3.4.2 命名函数
3.4.3 命名类型
3.4.4 命名名字空间
……
第4章 不言自明——编写“自文档化”代码的技巧
第5章 随篇注释——如何编写代码注释
第6章 人非圣贤——处理不可避免的情况——代码中的错误情形
第Ⅱ篇 代码的神秘生命
第7章 欲善其事,先利其器——使用工具构建软件
第8章 测试时代——测试代码的魔术
第9章 寻找缺陷——调试:当事情进展得不顺利时该怎么办
第10章 代码构建——将源代码转换为可执行代码的过程
第11章 追求速度——优化程序和编写高效的代码
第12章 不安全感综合症——编写安全的程序
第Ⅲ篇 代码的形成过程
第13章 崇尚设计——如何创作出优秀的软件设计
第14章 软件体系结构——奠定软件设计的基础
第15章 改良与革命——代码是如何成长的
第Ⅳ篇 “一群”程序员
第16章 代码猴子——培养正确的编程态度和方法
第17章 团结就是力量——团队合作与个人程序员
第18章 安全措施——源代码控制与自我控制
第Ⅴ篇 开发过程的组成部分第一部分
第19章 注意细节——编写软件规范
第20章 代码审查——执行代码审查
第21章 时间估计——软件时间范围估计的魔术
第Ⅵ篇 从高处鸟瞰
第22章 程序秘方——代码开发的方法和过程
第23章 编程领域大观——不同的编程分支
第24章 下一步呢——结果好就一切都好
但下一步该做什么呢?
答案和讨论
参考书目
索引