代码阅读有自身的一套技能,重要的是能够确定什么时候使用哪项技术。本书中,作者使用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 阅读代码的格言
内容简介:本书先简要介绍了如何用HTML5和CSS3制作网站,然后全面介绍了API和Canvas2D,接着介绍了如何在手机浏览器上开发HTML5相
虚拟现实交互设计 本书特色 本书从虚拟现实的基础理论出发,内容涵盖设计艺术学领域多个专业的知识,通过具体的原创设计案例分析,在3ds max和vrp平台,虚拟现...
C++面向对象程序设计 本书特色 刘建舟、徐承志、陈荆亮、吴奕编著的《C++面向对象程序设计》坚持定位明确、由浅入深、理论与实践相结合的方针;在写作上,力求简单...
《成吉思汗:意志征服世界》内容简介:他曾4次差点饿死、3次被追杀亡命、2次全军覆没、3次众叛亲离,但每次他都在绝境中爆发出疯狂
软件调试修炼之道 本书特色 Paul出色阐释了调试各个阶段所涉及的技术、思维、心理等方面的问题:首先要预防缺陷发生。然后诊断和修复缺陷,并确保相同的缺陷不再发生...
《Scala编程(第3版)》内容简介:本书由直接参与Scala开发的一线人员编写,因而对原理的解读和应用的把握更加值得信赖。本书面向具
糖史(全二册),ISBN:9787539254845,作者:季羡林编著目录 目录《糖史》自序第一编国内编自序引言第一章飴餳餳餹第二章周秦至
《迪士尼的快乐营销模式》内容简介:迪士尼公司成功的根本原因,是持续地创造快乐并把快乐体验传递给新顾客和持续地交叉销售给老顾
本书不仅描述了IMS域的体系结构,而且通过实例深入浅出地对IMS的关键概念、主要过程以及典型业务进行了剖析。本书内容远远超越了
《多工位级进模实例精选》内容简介:本书结合现代模具企业对模具设计师的工作要求,以先进、实用、通用为目的。全书分为2篇,每篇各
《哈农钢琴练指法》内容简介:《哈农钢琴练指法》已成为钢琴学习者必不可少的练习,这种练习将伴随他们的整个钢琴学习生涯,而且其
《杨家将演义(插图本)》内容简介:杨家将故事,是我国民间流传最广的英雄传奇故事之一。《杨家将演义》为明人编撰的一部杨家将小
本书是广受赞誉的Struts2优秀教程,它全面而深入地阐述了Struts2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使
《山野的日常》内容简介:那些在乡野里度过的时光,如此美妙轻灵。看水流,听鸟鸣,摘野果,晒太阳;云在流,风在走。作者以清新自
本书将带领读者从头开始制作一门语言的编译器。笔者特意为本书设计了CЬ语言,CЬ可以说是C语言的子集,实现了包括指针运算等在内
《神一样的产品经理》内容简介:《神一样的产品经理:基于移动与互联网产品实践》系统阐述了移动与互联网产品从无到有、从有到优的
本书用丰富的图示,从最小二乘法出发,对基于最小二乘法实现的各种机器学习算法进行了详细的介绍。第Ⅰ部分介绍了机器学习领域的
《逆向管理:成为上司器重的稀缺型员工》内容简介:本书的开篇从逆向管理的重要性说起,现代组织的复杂,对职场人的晋升提出了更大
《传统道德与中华人文精神》内容简介:人性、处世、处己、处人的人生观,义利、公私、理欲、德才的价值观,孝、忠、仁、义、礼、智
ManyseriousJavaprogrammers,especiallyenterpriseJavaprogrammers,considerthenewI/O...