代码阅读有自身的一套技能,重要的是能够确定什么时候使用哪项技术。本书中,作者使用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 阅读代码的格言
作家加里·哈梅尔的预测尖锐地指出了所有公司面临的挑战——商场逐鹿中,只有疾速创新才能立于不败之地。美国著名设计公司IDEO的
科研论文配图设计与制作从入门到精通-(附1DVD) 本书特色 本书针对科研人员在科学可视化表达中关心的问题——科研论文配图的设计与制作进...
PaulRandwasoneoftheworldsleadinggraphicdesigners.Herehedescribeshisworkwiththesa...
交互设计无处不在!屏幕就在我们身边——电视、电话、电子牌、电子阅读器及电脑。屏幕出现在我们的汽车仪表盘、飞机座椅背面、at
互联网在日常工作和生活中扮演日益重要的角色,互联网将如何重塑社会?本书通过汇集有关互联网文化、经济、政治角色等问题的研究
互联网的未来-光荣.毁灭与救赎的预言 目录 译者序引言**部分可繁殖网络的兴起和停滞**章盒子的战争第二章网络的战争第三章网络安全与自我繁殖的两难第二部分停滞之...
Therevisededitioncontainsanewchapterwhichprovidesanelegantdescriptionofthesemant...
《期权36课:基本知识与实战策略》内容简介:这本书的目标读者是刚开始学习期权以及有一定期权基础,但又想提高实践与理论相结合能
本书为专业和非专业用户、程序员、数据处理方面的专业人士和希望理解sQL在今天计算机产业中的影响的经理们提供了关于SQL语言的全
《36讲资治通鉴通识课:1362年历史时空》内容简介:《资治通鉴》是北宋司马光主编的中国首部编年体通史,是传统的史学巅峰著作,但
《中华书局的企业制度(1912-1949)》内容简介:中华书局作为一家有着百余年历史的现代出版机构,拥有丰厚的底蕴与光荣的传统。本书
MarkRichards是一位造诣颇深的作者和会议演讲者,他是金融服务行业的实战型SOA和企业体系结构师。除了发表大量文章之外,他还是《
本书以作者自身学习、使用模式和多年来为软件开发人员(包括面向对象技术老兵和新手)讲授模式的经验为基础撰写而成。首先概述了模
MatthewcWilson是一名软件开发顾问,STLSoft库的创建者,他为双月刊C/C++UserscJournal撰写关于将C/C++与其他语言和技术进行...
《特大型城市公共服务资源配置》内容简介:本书运用问卷调查、个案访谈、典型事件等社会调查方法,研究了特大型城市基层治理与创业
内容简介:本书讲的不是你写的代码,而是你赖以生存的密码。软件开发行业的从业人员成千上万,你如何保证自己出色地完成自己的工
游戏软件艺术设计 本书特色 本书着重介绍游戏的艺术设计部分,将庞大的游戏开发工程分解为8个章节,并以实例为主线,引导读者步步深入,使读者对游戏的历史、未来和美术...
《企业级Kubernetes应用》内容简介:Kubernetes从2015年7月21日发布1.0版本,经过三年多的时间不断发展至今,其作为开源的容器应用
《电子商务发展与乡村振兴战略:以西藏地区为例》内容简介:优先发展农业农村,全面推进乡村振兴,走中国特色社会主义乡村振兴道路
《数据中心网络布线系统工程应用技术》内容简介:本书作者为张宜,ISO/IEC/JCT1/SC25/WG3国际标准工作组的专家成员,具有20年数据中