登录 注册
当前位置:主页 > 资源下载 > 10 > ?可搜索+可编辑】的敏捷技能修炼与敏捷软件开发设计的最佳实践

?可搜索+可编辑】的敏捷技能修炼与敏捷软件开发设计的最佳实践

  • 更新:2024-05-21 16:26:08
  • 大小:18.78MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:其它 - 开发技术
  • 格式:PDF

资源介绍

本版本与网上其他资源不同之处在于,此版本可进行编辑,搜索,已进行内容识别扫描。可全选,可编辑,可剪切文字。 部分目录如下: 推荐序 译者序 丛书前言 前言 致谢 第一部分最关键的小舵板 第1 章意图导向编程...............…... 2 1.1 意图导向编程:一个实例…·……..… 2 I. 2 优点....................................... 4 1. 2. I 方法的内聚性........................ 5 I. 2. 2 可读性和表达性...…... …... …... 5 I. 2. 3 调试. ................................ 8 1. 2.4 重构和增强........................... 9 I 2.5 单元测试.......... . ... 11 I. 2. 6 更易修改和扩展..................… 13 1. 2. 7 在代码中发现模式…......……… 14 I. 2. 8 可迁移的方法..................... 15 I. 3 小结.................... . .................. 16 笫2 章分离构造和使用……………… 17 2. I 一个重要的问题... ......... …......... 17 2.2 两种视图................................. 18 2.2. 1 创建视图........................... 19 2.2.2 使用视00 ........................... 19 2.2.3 隐藏的部分更容易改动.……. .... 20 2.2.4 现实的做法…............ …...... 23 2.2.5 一些实际的考量因素….. .…... … 25 2.3 给你的决策计时........................ 26 2.4 重载和C ++ .............................. 27 2.5 自我查验.................... . ............ 27 2.6 小结...................................... . 27 第3 章代码未动,测试先行...……… 29 3. I 一个小舵板:测试与可测试性……… 29 3.2 什么是测试.............................. 29 3.3 可测试性和代码质量…·……....……. JO 3.4 案例学习:可测试性….........……… 31 3. 4. l 随时应对变化...... …... …...... 32 3.4.2 青蛙一样的程序员·….....……... 32 3. 5 一个关于测试先行的思考…...……... 33 3.5. I 更好的设计... ….................. 35 3.5.2 更清晰的范围和避免不必要的 工作........ . ..... . .................. 35 3.5.3 降低复杂性...... …............... 36 3.5.4 其他优势........................... 36 3.5.5 没有例外........................... 37 3.6 小结....................................... 37 第4 章Shalloway 法则和Shalloway 原则................................. 38 4. I 冗余的种类…........................... 38 4. I. I 复制和粘贴........................ 39 对 4. 1. 2 "魔法“数字............…...... 39 4. I. 3 其他类型........... .. ... . .......... 39 4.2 重新定义冗余........................... 39 4.3 其他形式的冗余..................... ... 40 4.4 设计模式在减少冗余时扮演的角色…… 41 4.5 很少有开发人员花费大量的时间去 “修改”代码错误... ….................. 41 4.6 冗余对代码质量其他方面的影响.. …·43 4. 7 小结.............................. .. ....... 45 第5 章封装....... . ........................ . 46 5. I 未封装的代码:对全局变量的破坏…… 46 5.2 成员标志的封装........................ 47 5. 3 自封装成员.............................. 49 5.4 预防代码更改........................... 50 5.5 封装引用对象的难点......... …......... 51 5.6 用get () 来打破封装….........…… 54 5. 7 对象类型的封装........................ 56 5.8 设计的封装.............................. 58 5.9 各个层次的封装................ ….. … 60 5. 10 实用性建议:把困难封装起来...…... 61 5. ll 小结.................................... 63 笫6 章面向接口的设计... . .金………… 64 6.1 针对接口的设计......... ……......... 64 6.2 接口的定义.............................. 64 6.3 接口约定................................. 65 6.4 分离不同的视图…………... ……... 66 6.5 接口的模拟实现........................ 68 6.6 让接口保持简单............... …...... 68 6. 7 避免过早采用继承体系..….. ……….. 69 6.8 接口和抽象类........................... 70 6.9 依赖反转原则........................... 71 6. 10 多态性概述.............................. 71 6. 11 不是每个类都需要接口…... …...... 72 6. 12 小结.................................... 73 第7 章验收测试驱动开发….........… 74 7.1 两种开发流程........................... 74 7.2 验收测试................................. 76 7.3 一个关于验收测试的实例...………... 77 7.4 实现验收测试........................... 78 7.4. I 针对用户界面的测试脚本·…….. 78 7.4.2 测试用户界面..................... 79 7. 4. 3 XUnit 测试..... .. .......... .. ........ 81 7.4.4 验收测试框架..................... 81 7. 4.5 四种方法间的联系... …......... ... 82 7.5 一个练习................................. 82 7.6 如果客户不告诉你怎么做的时候. 你应该怎么办........................... 83 7. 7 小结....................................... 83 第二部分基本态度 第8 章避免过度设计或设计不足…... 86 8. I 给开发人员的簸言...... ….. ……· … 86 8.2 代码质量病理学........................ 87 8.3 避免过度设计或设计不足………·….. 88 8.4 把复杂度和返工最小化·…………….. 88 8.5 永不把代码变得更糟/仅在有目的的 情况下降低代码质量…………......... 89 8.6 使代码容易修改,足够强大健壮,适应 变化并安全可靠…...... ............... 89 8. 7 在非面向对象的代码或遗留系统里编写 易于修改代码的策略·…·… · ………... 90 8. 8 小结....................................... 93 第9 章持续集成…...….......... …….. 94 9. 1 建立源代码分支... ……......... …... 94 XVI 9. l. I 多版本:特殊分支……............ 95 9. l. 2 孤立地工作:开发分支…....….. 96 9. l. 3 间题、解决方案、新的问题.. .…… 98 9.2 将主干内容合并回分支…·………….. 99 9.3 测试驱动开发与合并成本... ……. • • JOO 9.4 持续集成............ ... .................. 102 9.5 持续集成服务器........................ 103 9.6 小结.................................... 104 第三部分设计问题 笫10 章共性和可变性分析......…… 108 10. I 用动词和名词来做指南:警告,前面 有危险................................. 108 10. 2 真正的问题是什么· …....……….... 111 10. 3 我们所需要知道的·…......…····· … 111 10.4 共性和可变性分析...………......... 112 10.4. l 共性分析........................ 113 10.4.2 可变性分析..................... 113 10.4.3 面向对象设计”一箭三雕"…… 113 10.5 发掘对象的新范式…...………...... 114 10.6 分析矩阵: 一个用例学习………… 115 10. 7 小结.................................... 122 第11 章以开放关闭原则为目标的 重构................ .. ........... . 123 11. l 开放关闭原则............ …......... 123 11.1.1 从开放关闭原则引申到其他… . .. 126 11. 1. 2 开放关闭原则是一个 “原则" ........................... 127 11. 2 重构.................................... 129 I I. 2. 1 为何重构.. ...................... 130 11. 2. 2 负债还是投资..................... 130 11. 2. 3 重构和遗留系统……·…....…·131 11. 2. 4 以开放关闭原则为目标的重构… 132 II. 2. 5 "及时“设计...... …......... 134 11. 3 小结........... . ........................ 136 第12 章需求与功能接口…………... 137 12. I 迪米特法则........................... 137 12.2 船,可恶的耦合,还有依赖……… 139 12.2.1 耦合和可测试性...…………... 140 12.2.2 需求与功能..................... 141 12.3 理想的分离方案:需求接口和 功能接口.............................. 142 12. 4 回到迪米特法则......... ……......... 143 12. 5 小结................. . .................. 145 第13 章何时以及如何使用继承…... 147 13. 1 "四人组" .............................. 147 13.2 初始向董,最终结果……….... ..... 149 13. 3 优先委托.............................. 151 13. 4 使用继承与使用委托·…………..... 152 13.5 继承的使用........................... 154 13.6 可扩展性.. ............................ 156 13. 7 在敏捷开发里应用四人组的训诫… 156 13.8 测试问题.............................. 157 13.9 更多......... .... ........ .. .......... ... 158 第四部分附 录 附录A 统一建模语言概览…..……·160 附录B 代码质量...... . ........ …......... 169 附录C 封装原始数据类型………… 178