Movatterモバイル変換


[0]ホーム

URL:


登录/注册
下载豆瓣客户端
豆瓣6.0 全新发布×

豆瓣

扫码直接下载

iPhone·Android
豆瓣读书
搜索:

软件调试修炼之道

软件调试修炼之道
作者: Paul Butcher
出版社:人民邮电出版社
原作名: Debug It!: Find, Repair, and Prevent Bugs in Your Code
译者: 曹玉琳
出版年: 2011-6
页数: 158
定价: 32.00元
装帧: 平装
丛书: 图灵程序设计丛书·程序员修炼系列
ISBN: 9787115252647
豆瓣评分
5星
15.4%
4星
51.9%
3星
26.9%
2星
5.8%
1星
0.0%
评价:

内容简介  · · · · · ·

本书主要讲述如何运用方法和调试工具在客户投诉之前自动检测程序中的bug,紧紧围绕问题重现、问题诊断、缺陷修复、反思四个中心环节,并将调试置于软件开发与运行的大环境中,为我们道出了软件调试修炼之道。

本书适用软件开发、调试一线人员及一切热爱软件调试之道的有志者。

作者简介  · · · · · ·

Paul Butcher 资深程序员,涉猎广泛,从单片机编码到高级声明式编程无所不精。Paul是一位少年天才,8岁时就已经开始在8位机上编写游戏。最近几年他开始痴迷于赛车,认为自己是可以和汉密尔顿比肩的赛车手。

目录  · · · · · ·

第一部分 问题的核心
第1 章 山重水复疑无路  2
1.1 调试不仅是排除缺陷  2
1.2 实证方法  4
1.3 核心调试过程  5
1.4 先澄清几个问题  6
· · · · · · (更多)
第一部分 问题的核心
第1 章 山重水复疑无路  2
1.1 调试不仅是排除缺陷  2
1.2 实证方法  4
1.3 核心调试过程  5
1.4 先澄清几个问题  6
1.4.1 你知道要找的是什么吗   6
1.4.2 一次一个问题  7
1.4.3 先检查简单的事情   7
1.5 付诸行动  8
第2 章 重现问题  9
2.1 重现第一,提问第二  9
2.1.1 明确开始要做的事   10
2.1.2 抓住重点  10
2.2 控制软件   11
2.3 控制环境   11
2.4 控制输入   13
2.4.1 推测可能的输入   13
2.4.2 记录输入值  15
2.4.3 负载和压力  19
2.5 改进问题重现  20
2.5.1 最小化反馈周期  20
2.5.2 将不确定的缺陷变为确定的   22
2.5.3 自动化  25
2.5.4 迭代  26
2.6 如果真的不能重现问题该怎么办   27
2.6.1 缺陷真的存在吗   27
2.6.2 在相同的区域解决不同的问题  27
2.6.3 让其他人参与其中  27
2.6.4 充分利用用户群体  28
2.6.5 推测法   28
2.7 付诸行动   29
第3 章 诊断  30
3.1 不要急于动手——试试科学的方法  30
3.2 相关策略  35
3.2.1 插桩  36
3.2.2 分而治之  37
3.2.3 利用源代码控制工具   38
3.2.4 聚焦差异  39
3.2.5 向他人学习  39
3.2.6 奥卡姆的剃刀  40
3.3 调试器  40
3.4 陷阱  41
3.4.1 你做的修改是正确的吗  41
3.4.2 验证假设  42
3.4.3 多重原因  43
3.4.4 流沙  44
3.5 思维游戏    45
3.5.1 旁观调试法  45
3.5.2 角色扮演  46
3.5.3 换换脑筋  47
3.5.4 做些改变,什么改变都行  47
3.5.5 福尔摩斯原则  48
3.5.6 坚持  49
3.6 验证诊断   49
3.7 付诸行动   50
第4 章 修复缺陷  51
4.1 清除障碍  51
4.2 测试  52
4.3 修复问题产生的原因,而非修复现  54
4.4 重构  56
4.5 签入  57
4.6 审查代码   58
4.7 付诸行动   59
第5 章 反思  60
5.1 这到底是怎么搞的  60
5.2 哪里出了问题  61
5.2.1 我们已经做到了吗  62
5.2.2 根本原因分析   62
5.3 它不会再发生了  63
5.3.1 自动验证  63
5.3.2 重构  64
5.3.3 过程  65
5.4 关闭循环  65
5.5 付诸行动  66
第二部分 从大局看调试
第6 章 发现代码存在问题  68
6.1 追踪缺陷   68
6.1.1 缺陷追踪系统   68
6.1.2 怎样才能写出一份出色的缺陷报告  69
6.1.3 环境和配置报告  70
6.2 与用户合作  72
6.2.1 简化流程  72
6.2.2 有效的沟通  73
6.3 与支持人员协同工作  77
6.4 付诸行动  78
第7 章 务实的零容忍策略  79
7.1 缺陷优先  79
7.1.1 早期缺陷修复可以大大降低软件运行的不确定性   79
7.1.2 没有破窗户  80
7.2 调试的思维模式  81
7.3 自己来解决质量问题  83
7.3.1 这里没有“灵丹妙药”    83
7.3.2 停止开发那些有缺陷的程序   84
7.3.3 从“不干净”的代码中将“干净”的代码分离出来  84
7.3.4 错误分类  85
7.3.5 缺陷闪电战  86
7.3.6 专项小组  87
7.4 付诸行动  87
第三部分 深入调试技术
第8 章 特殊案例  90
8.1 修补已经发布的软件  90
8.2 向后兼容  91
8.2.1 确定你的代码有问题  92
8.2.2 解决兼容性问题  93
8.3 并发  95
8.3.1 简单与控制  95
8.3.2 修复并发缺陷   96
8.4 海森堡缺陷  97
8.5 性能缺陷  98
8.5.1 寻找瓶颈.  99
8.5.2 准确的性能分析  99
8.6 嵌 入式软件  100
8.6.1 嵌入式调试工具  100
8.6.2 提取信息的痛苦路程   102
8.7 第三方软件的缺陷  102
8.7.1 不要太快去指责  103
8.7.2 处理第三方代码的缺陷   103
8.7.3 开源代码  104
8.8 付诸行动  106
第9 章 理想的调试环境   107
9.1 自动化测试  107
9.1.1 有效的自动化测试  107
9.1.2 自动化测试可以作为调试的辅助  108
9.1.3 模拟测试、桩测试以及其他的代替测试技术   109
9.2 源程序控制  110
9.2.1 稳定性  110
9.2.2 可维护性  111
9.2.3 与分支相关的问题  111
9.2.4 控制分支  112
9.3 自动构建  113
9.3.1 一键构建  114
9.3.2 构建机器  115
9.3.3 持续集成  115
9.3.4 创建版本  116
9.3.5 静态分析  117
9.3.6 使用静态分析  119
9.4 付诸行动   120
第10 章 让软件学会自己寻找缺陷   121
10.1 假设和断言  121
10.1.1 一个例子  122
10.1.2 等一下——刚才发生了什么  124
10.1.3 例子,第二幕   124
10.1.4 契约,先决条件,后置条件和不变量  125
10.1.5 开启或关闭断言   125
10.1.6 防错性程序设计  126
10.1.7 断言滥用  128
10.2 调试版本  129
10.2.1 编译器选项   130
10.2.2 调试子系统   130
10.2.3 内置控制  132
10.3 资源泄漏和异常处理   133
10.3.1 在测试中自动抛出异常  133
10.3.2 一个例子  134
10.3.3 测试框架  136
10.4 付诸行动  139
第11 章 反模式  140
11.1 夸大优先级  140
11.2 超级巨星  141
11.3 维护团队  142
11.4 救火模式     144
11.5 重写  145
11.6 没有代码所有权  146
11.7 魔法  146
11.8 付诸行动  147
附录A 资源  148
附录B 参考书目  157
· · · · · · (收起)

原文摘录   · · · · · · (全部 )

  • Debugging sessions are ephemeral; tests are permanent. (查看原文)
    大头2011-11-12 19:51:28
    —— 引自第41页
  • * 调试不仅是排除缺陷 * Steps * 弄清楚软件为什么会运行有问题 * 修复问题 * 避免破坏其他部分 * 保持或者提高代码的总体质量 * 可读性 * 架构 * 测试覆盖比率 * 性能 * 确保同样的问题不会在其他地方发生,也不会再次发生 * Important * 查明问题的根本原因* 实证方法 * 构建实验,观察結果* 核心调试过程 * 问题重现 * 找一个可靠并简洁的方式来按需求重现问题 * 问题诊断 * 提出假设,并通过实验来测试它们,直到找出引起缺陷的潜在原因 * 缺陷修复 * 设计和进行一些修改来修复问题,不要引入回归问题,保持和提高软件的整体质量 * 反思 * 吸取教训 * 哪里出了问题 * 是否还有其他类似问题 * 如何才能确保同样的问题不再发生 * 调试是一个反复的过程* Before you debug * 需要明白的问题 * 需要知道要找的是什么 * 发生了什么,应该发生什么 * 一次一个问题 * 先检查简单的事情* HowToDo * 一定需要做到 * 找到软件运行异常的原因 * 修复问题 * 避免破坏其他程序 * 保持或提高软件的整体质量 * 确保不在其他地方发生同样的... (查看原文)
    PC喵鹏桑2020-12-11 12:38:23
    —— 引自章节:第1 章 山重水复疑无路  2

>全部原文摘录

丛书信息  · · · · · ·

  图灵程序设计丛书·程序员修炼系列(共72册),这套丛书还有《软件之道》《30天软件开发》《编程语言的设计与实现》《持续交付实战》《实例化需求》等。

喜欢读"软件调试修炼之道"的人也喜欢的电子书  · · · · · ·

支持 Web、iPhone、iPad、Android 阅读器
我来说两句

短评  · · · · · · (全部 17 条 )

我要写书评

软件调试修炼之道的书评 · · · · · ·(全部 5 条 )

2012-05-18 01:57:25Pragmatic Bookshelf2009版

软件工程的好书

很多人光看标题,以为这本书只是在讲blackbox/whitebox testing, unit testing, regression testing, etc. 其实,作者根本没专门把这些Testing 101的内容拿出来讲。书的内容除了debug,还涵盖了很多『好』的软件开发方法。所谓的『好』的开发方法,就是要保证软件质量,保证开...  (展开)
十一2019-05-22 22:47:52

针对软件开发者的调试方法论《软件调试修炼之道》

这篇书评可能有关键情节透露

目标 找到软件运行异常的原因 修复问题 避免破坏其他程序 保持或提高软件整体质量 确保不在其他地方发生同样的问题 解决问题 重现 利用软件自身告诉你发生了什么:运行软件,让它崩溃;构建实验,观察结果 按照缺陷报告的描述步骤施行 确认相关因素 软件,确认运行版本和缺陷版...  (展开)
想太多...2012-12-01 18:42:12

系统的解决掉bug (一条线+几个点)

这篇书评可能有关键情节透露

说到软件调试, 自己也已经知道一些东西。这本书不同之处在于,它 不仅仅讲了调试,还把他跟质量保证结合在一起。我总结为"一条线+几个点"。 全书的亮点,我认为,在于一个很好的思路(一条线):怎么修复bug(它确实不会发生:find & repair) -> 如何避免产生bug(它不会再次发生:...  (展开)
涅瓦纳2017-10-09 18:48:33Pragmatic Bookshelf2009版

Debug It!

If you develop software, sooner or later you're going to discover that it doesn't always behave as you intended. Working out why it's misbehaving can be hard. Sometimes very hard. Debug It! is here to help! All bugs are different: there is no silver bullet....  (展开)
涅瓦纳2014-08-10 20:47:15

软件调试修炼之道

我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看...  (展开)

> 更多书评 5篇

论坛  · · · · · ·

在这本书的论坛里发言

当前版本有售  · · · · · ·

在线试读 :

这本书的其他版本  · · · · · · (全部2 )

在哪儿借这本书  · · · · · ·

以下书单推荐  · · · · · · (全部 )

谁读这本书?  · · · · · ·

SuperLoser
SuperLoser
2025年12月20日 想读


伊丸
伊丸
2025年11月30日 想读


放星星
放星星
2025年9月14日 想读


次幂
次幂
2025年8月23日 读过


>19人在读

>65人读过

>228人想读

二手市场  · · · · · ·

订阅关于软件调试修炼之道的评论:
feed: rss 2.0

© 2005-2026 douban.com, all rights reserved 北京豆网科技有限公司关于豆瓣 ·在豆瓣工作 ·联系我们 ·法律声明 ·帮助中心 ·图书馆合作 ·移动应用

[8]ページ先頭

©2009-2026 Movatter.jp