编写可读代码的艺术 - (EPUB全文下载)

文件大小:8.02 mb。
文件格式:epub 格式。
书籍内容:

O'Reilly精品图书系列
编写可读代码的艺术
The Art of Readable Code
[美]Dustin Boswell
[美]Trevor Foucher 著
尹哲 郑秀雯 译
ISBN:978-7-111-38544-8
本书纸版由机械工业出版社于2012年出版,电子版由华章分社(北京华章图文信息有限公司)全球范围内制作与发行。
版权所有,侵权必究
客服热线:+ 86-10-68995265
客服信箱:service@bbbvip.com
官方网址:www.hzmedia.com.cn
新浪微博 @研发书局
腾讯微博 @yanfabook
目 录
O'Reilly Media,Inc.介绍
业界评论
译者序
前言
本书内容安排
如何阅读本书
代码示例的使用
联系我们
致谢
第1章 代码应当易于理解
是什么让代码变得“更好”
可读性基本定理
总是越小越好吗
理解代码所需的时间是否与其他目标有冲突
最难的部分
第一部分 表面层次的改进
第2章 把信息装到名字里
选择专业的词
找到更有表现力的词
避免像tmp和retval这样泛泛的名字
tmp
循环迭代器
对于空泛名字的裁定
用具体的名字代替抽象的名字
例子:DISALLOW_EVIL_CONSTRUCTORS
例子:——run_locally(本地运行)
为名字附带更多信息
带单位的值
附带其他重要属性
名字应该有多长
在小的作用域里可以使用短的名字
输入长名字——不再是个问题
首字母缩略词和缩写
丢掉没用的词
利用名字的格式来传递含义
其他格式规范
总结
第3章 不会误解的名字
例子:Filter()
例子:Clip(text,length)
推荐用min和max来表示(包含)极限
推荐用first和last来表示包含的范围
推荐用begin和end来表示包含/排除范围
给布尔值命名
与使用者的期望相匹配
例子:get*()
例子:list:size()
例子:如何权衡多个备选名字
总结
第4章 审美
为什么审美这么重要
重新安排换行来保持一致和紧凑
用方法来整理不规则的东西
在需要时使用列对齐
你应该用列对齐吗
选一个有意义的顺序,始终一致地使用它
把声明按块组织起来
把代码分成“段落”
个人风格与一致性
总结
第5章 该写什么样的注释
什么不需要注释
不要为了注释而注释
不要给不好的名字加注释——应该把名字改好
记录你的思想
加入“导演评论”
为代码中的瑕疵写注释
给常量加注释
站在读者的角度
意料之中的提问
公布可能的陷阱
“全局观”注释
总结性注释
最后的思考——克服“作者心理阻滞”
总结
第6章 写出言简意赅的注释
让注释保持紧凑
避免使用不明确的代词
润色粗糙的句子
精确地描述函数的行为
用输入/输出例子来说明特别的情况
声明代码的意图
“具名函数参数”的注释
采用信息含量高的词
总结
第二部分 简化循环和逻辑
第7章 把控制流变得易读
条件语句中参数的顺序
if/else语句块的顺序
?:条件表达式(又名“三目运算符”)
避免do/while循环
从函数中提前返回
臭名昭著的goto
最小化嵌套
嵌套是如何累积而成的
通过提早返回来减少嵌套
减少循环内的嵌套
你能理解执行的流程吗
总结
第8章 拆分超长的表达式
用做解释的变量
总结变量
使用德摩根定理
滥用短路逻辑
例子:与复杂的逻辑战斗
找到更优雅的方式
拆分巨大的语句
另一个简化表达式的创意方法
总结
第9章 变量与可读性
减少变量
没有价值的临时变量
减少中间结果
减少控制流变量
缩小变量的作用域
C++中if语句的作用域
在JavaScript中创建“私有”变量
JavaScript全局作用域
在Python和JavaScript中没有嵌套的作用域
把定义向下移
只写一次的变量更好
最后的例子
总结
第三部分 重新组织代码
第10章 抽取不相关的子问题
介绍性的例子:findClosestLocation()
纯工具代码
其他多用途代码
意料之外的好处
创建大量通用代码
项目专有的功能
简化已有接口
按需重塑接口
过犹不及
总结
第11章 一次只做一件事
任务可以很小
从对象中抽取值
应用“一次只做一件事情”原则
另一种做法
更大型的例子
进一步的改进
总结
第12章 把想法变成代码
清楚地描述逻辑
了解函数库是有帮助的
把这个方法应用于更大的问题
用自然语言描述解决方案
递归地使用这种方法
总结
第13章 少写代码
别费神实现那个功能——你不会需要它
质疑和拆分你的需求
例子:商店定位器
例子:增加缓存
保持小代码库
熟悉你周边的库
例子:Python中的列表和集合
为什么重用库有这么大的好处
例子:使用Unix工具而非编写代码
总结
第四部分 精选话题
第14章 测试与可读性
使测试易于阅读和维护
这段测试什么地方不对
使这个测试更可读
创建最小的测试声明
实现定制的“微语言”
让错误消息具有可读性
更好版本的assert()
手工打造错误消息
选择好的测试输入
简化输入值
一个功能的多个测试
为测试函数命名
那个测试有什么地方不对
对测试较好的开发方式
走得太远
总结
第15章 设计并改进“分钟/小时计数器”
问题
定义类接口
改进命名
改进注释
尝试1:一个幼稚的方案
这段代码易于理解吗?
一个更易读的版本
性能问题
尝试2:传送带设计方案
实现两阶段传送带设计
这样就完成了吗?
尝试3:时间桶设计方案
实现时间桶设
实现TrailingBucketCounter
实现ConveyorQueue
比较三种方案
总结
附录深入阅读
关于写高质量代码的书
关于各种编程话题的书
历史上重要的书目
作者简介
O'Reilly Media,Inc.介绍
O'Reilly Media通过图书、杂志、在线服务、调查研究和会议等方式传播创新知识。自1978年开始,O'Reilly一直都是前沿发展的见证者和推动者。超级极客们正在开创着未来,而我们关注真正重要的技术趋势——通过放 ............

书籍插图:
书籍《编写可读代码的艺术》 - 插图1
书籍《编写可读代码的艺术》 - 插图2

以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。

版权声明:书云(openelib.org)是世界上最大的在线非盈利图书馆之一,致力于让每个人都能便捷地了解我们的文明。我们尊重著作者的知识产权,如您认为书云侵犯了您的合法权益,请参考版权保护声明,通过邮件openelib@outlook.com联系我们,我们将及时处理您的合理请求。 数研咨询 流芳阁 研报之家 AI应用导航 研报之家
书云 Open E-Library » 编写可读代码的艺术 - (EPUB全文下载)