代码阅读有自身的一套技能,重要的是能够确定什么时候使用哪项技术。本书中,作者使用600多个现实的例子,向读者展示如何区分好的(和坏的)代码,如何阅读,应该注意什么,以及如何使用这些知识改进自己的代码。养成阅读高品质代码的习惯,可以提高编写代码的能力。
阅读代码是程序员的基本技能,同时也是软件开发、维护、演进、审查和重用过程中不可或缺的组成部分。本书首次将阅读代码作为一项独立课题,系统性地加以论述。本书引用的代码均取材于开放源码项目——所有程序员都应该珍视的宝库。本书围绕代码阅读,详细论述了相关的知识与技能。“他山之石、可以攻玉”,通过仔细阅读并学习本书,可以快速地提高读者代码阅读的技能与技巧,进而从现有的优秀代码、算法、构架、设计中汲取营养,提高自身的开发与设计能力。
本书适用于对程序设计的基本知识有一定了解,并想进一步提高自身开发能力的读者。
第1章 导论
1.1 为什么以及如何阅读代码
1.2 如何阅读本书
进阶读物
第2章 基本编程元素
2.1 一个完整的程序
2.2 函数和全局变量
2.3 while循环、条件和块
2.4 switch语句
2.5 for循环
2.6 break和continue语句
2.7 字符和布尔型表达式
2.8 goto语句
2.9 小范围重构
2.10 do循环和整型表达式
2.11 再论控制结构
进阶读物
第3章 高级C数据类型
3.1 指针
3.2 结构
3.3 共用体
3.4 动态内存分配
3.5 typedef声明
进阶读物
第4章 C数据结构
4.1 向量
4.2 矩阵和表
4.3 栈
4.4 队列
4.5 映射
4.6 集合
4.7 链表
4.8 树
4.9 图
进阶读物
第5章 高级控制流程
5.1 递归
5.2 异常
5.3 并行处理
5.4 信号
5.5 非局部跳转
5.6 宏替换
进阶读物
第6章 应对大型项目
6.1 设计与实现技术
6.2 项目的组织
6.3 编译过程和制作文件
6.4 配置
6.5 修订控制
6.6 项目的专有工具
6.7 测试
进阶读物
第7章 编码规范和约定
7.1 文件的命名及组织
7.2 缩进
7.3 编排
7.4 命名约定
7.5 编程实践
7.6 过程规范
进阶读物
第8章 文档
8.1 文档的类型
8.2 阅读文档
8.3 文档存在的问题
8.4 其他文档来源
8.5 常见的开放源码文档格式
进阶读物
第9章 系统构架
9.1 系统的结构
9.2 控制模型
9.3 元素封装
9.4 构架重用
进阶读物
第10章 代码阅读工具
10.1 正规表达式
10.2 用编辑器浏览代码
10.3 用grep搜索代码
10.4 找出文件的差异
10.5 开发自己的工具
10.6 用编译器来协助代码阅读
10.7 代码浏览器和美化器
10.8 运行期间的工具
10.9 非软件工具
可用工具和进阶读物
第11章 一个完整的例子
11.1 概况
11.2 攻坚计划
11.3 代码重用
11.4 测试与调试
11.5 文档
11.6 观察报告
附录A 代码概况
附录B 阅读代码的格言
《jQueryUI开发指南》是jQueryUI的快速开发指南,全面介绍jQueryUI如何改进HTML页面展示,内容包括jQueryUI1.8版本的下列扩展特性
《数据分析之图算法:基于Spark和Neo4j》内容简介:图分析可以揭示复杂系统和大规模网络的运作机制,图算法为构建智能应用程序提供
本书由“java之父”JameGosling以及另外三位顶级大师撰写而成,无论是对java语言的初学者还是专业程序员都具有极高的价值,是关于
“这本书是越来越多的信息检索文献里的一本好书”——DonaldH.Kraft,计算机评论“学术巨匠齐聚一堂编撰了一部信息检索的优秀教材
Wouldyoulikeanoverviewofthestateoftheartinwebdesigninaspecificfield?WEBDESIGNIND...
作为互联网发展的一个新阶段,Web2.0已经走入了我们的网络生活当中。本书集Web2.0的理念分析与具体设计于一体,希望帮助读者既能
《2020—2021年中国工业技术创新发展蓝皮书(精装版)》内容简介:本书对2020年我国及世界主要国家工业技术创新发展态势、创新热点
《操盘:千股涨停》内容简介:2015年上万亿资金逐鹿A股市场,各路私募基金迅速扩张,大量的场内场外杠杆交易大行其道。青山投资异军
《闹城》内容简介:本书是清华大学美术学院苏丹教授撰写的回忆录式长篇叙事散文集。作者以重工业城市太原为背景,记录了其在60年代
Computerscienceasanengineeringdisciplinehasbeenspectacularlysuccessful.Yetitisal...
《基于ARM Cortex-M4F内核的MSP432 MCU开发实践》内容简介:本书以基于ARM Cortex-M4F内核的MSP432 P401r微控制器为例...
《人生怎可安闲》内容简介:人在世间行走,不可孤芳自赏,亦不必委曲求全。山水虽无价,也不必谁人赐予四季风景。只要心有思慕,便
掌握TMS320C6201/6701DSPs是了解当代众多DSPs的方法之一。DSPs是DigitalSignalProcessors的缩写,指专用于数字信号处...
WebGIS原理及其应用——主要WebGIS平台开发实例 本书特色 《Web GIS原理及其应用:主要Web GIS平台开发实例》:地理信息系统教学丛书WebG...
《尬聊》内容简介:本书语言生动,通俗易懂,内含大量贴近生活的案例,讲述了与不同的人相处时如何巧妙地聊天。教你化解复杂的、难
为何典型的企业项目无法像你为web所开发的项目那样运行得如此平滑?对于建造分布式和企业级的应用来说,rest架构风格真的提供了一
几何拓扑:局部性、周期性何伽罗瓦对成性 内容简介 本书以全英文影印版的形式介绍了局部性、周期性和伽罗瓦对称性等内容。几何拓扑:局部性、周期性何伽罗瓦对成性 目录...
《欲罢不能:刷屏时代如何摆脱行为上瘾》内容简介:本书追溯了上瘾行为的兴起,考察了它们始于何处,出自何人的设计,让它们吸引力
《禅学指归》内容简介:本书收录了胡适论述中国佛教及禅宗的文章。胡适本人不信任何宗教。然而,说到对佛教和禅宗的研究,作为研究
《从“天下”国家到民族国家》内容简介:《从“天下”国家到民族国家》将中国的多民族统一国家思想的根源追溯到中国人对世界的原初