当前位置:主页 > 计算机电子书 > 行业软件及应用 > 软件调试下载
软件调试修炼之道

软件调试修炼之道 PDF 完整影印版

  • 更新:2019-09-02
  • 大小:1.9 MB
  • 类别:软件调试
  • 作者:布彻
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

软件调试修炼之道 PDF

调节对开发软件尤为重要。殊不知,即便针对有工作经验的程序猿,调节也决非一件容易的事情。

这书是有部出色的手机软件调节实战演练手册,创作者小结了自身和身旁朋友很多年的成功经验,详尽论述了调节的各个方面。书中內容共分成三绝大多数。首位一部分依靠手机软件独有的作用展现缺点是如何造成的,详细介绍了创建在实证方式之中的关键调节方式;其次一部分论述如何发觉编码中存有必须修补的难题,及其如何把调节融进到全部软件开发过程中来;最后一部分探讨如何应对某些普遍的缺点。

这书秉持了Pragmatic书籍简约好用的设计风格,小结了很多方式与工作经验,合适手机软件开发者、调节工作人员阅读文章并快速付诸行动。

Paul Butcher 杰出程序猿,读一些普遍,从单片机设计编号到高級申明式程序编写无所不精。Paul是一名青少年超级天才,8岁时就早已刚开始在8位机里撰写手机游戏。近期两年他刚开始沉迷于超级跑车,觉得自身是能够和汉密尔顿并列的职业赛车手。

目录

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

资源获取

资源地址1:https://pan.baidu.com/s/1KQtCCD-xWCmIID79Tkiksg

相关资源

网友留言