《敏捷技能修炼:敏捷软件开发与设计的最佳实践》基本信息原书名:Essential Skills for the Agile Developer:A Guide to Better Programming and Design作者: (美)Alan Shalloway Scott Bain Ken Pugh Amir Kolsky [作译者介绍]译者: 郑立 邹骏 黄灵出版社:机械工业出版社ISBN:9787111395270上架时间:2012-8-25出版日期:2012 年8月开本:16开页码:1版次:1-1所属分类: 计算机 > 软件工程及软件方法学 > 软件项目管理计算机 > 软件与程序设计 > 综合 > 高级程序语言设计更多关于》》》《》内容简介书籍计算机书籍 《敏捷技能修炼:敏捷软件开发与设计的最佳实践》的4位作者都是世界顶级的软件开发专家和敏捷导师,都有数十年的软件行业从业经验,其中3位曾荣获jolt大奖。本书是敏捷软件开发领域公认的经典著作,权威性毋庸置疑。 《敏捷技能修炼:敏捷软件开发与设计的最佳实践》中内容围绕“敏捷式编程”这一主题展开,对每一位敏捷软件开发人员都应该掌握的核心技能和技术进行了深入阐述,总结出了大量最佳实践,提供了一整套最精炼的技术集合,可以帮助他们在开发中变得游刃有余,极大地提高开发效率和软件质量。 全书共分四个部分:第一部分(1~7章),阐述了在软件开发过程中能起到“四两拨千斤”作用的几种思想方法(“小舵板”),如意图导向编程、分离构造和使用、测试先行和shalloway原则等,并总结了业界常用的几种实践,包括如何封装、面向接口的设计和验收测试驱动等;第二部分(8~9章),对过度设计和持续集成这两个问题进行了深入的探讨,并给出了最佳实践;第三部分(10~13章),作者分享了很多只有在他们的教学现场才能获得的经验,这些经验是优秀架构师应该具备的,具体包括共性和可变性分析、以开放关闭原则为目标的重构、需求与功能接口、何时以及如何使用继承等重要内容;第四部分是附录,介绍了统一建模语言、提高代码质量的原则,以及如何封装原始数据类型等。目录《敏捷技能修炼:敏捷软件开发与设计的最佳实践》推荐序译者序丛书前言前言致谢第一部分最关键的小舵板第1章意图导向编程1.1意图导向编程:一个实例1.2优点1.2.1方法的内聚性1.2.2可读性和表达性1.2.3调试1.2.4重构和增强1.2.5单元测试1.2.6更易修改和扩展1.2.7在代码中发现模式1.2.8可迁移的方法1.3小结第2章分离构造和使用2.1一个重要的问题2.2两种视图2.2.1创建视图2.2.2使用视图2.2.3隐藏的部分更容易改动2.2.4现实的做法2.2.5一些实际的考量因素2.3给你的决策计时2.4重载和c++2.5自我查验2.6小结第3章代码未动,测试先行3.1一个小舵板:测试与可测试性3.2什么是测试3.3可测试性和代码质量3.4案例学习:可测试性3.4.1随时应对变化3.4.2青蛙一样的程序员3.5一个关于测试先行的思考3.5.1更好的设计3.5.2更清晰的范围和避免不必要的工作3.5.3降低复杂性3.5.4其他优势3.5.5没有例外3.6小结第4章shalloway法则和shalloway原则4.1冗余的种类4.1.1复制和粘贴4.1.2“魔法”数字4.1.3其他类型4.2重新定义冗余4.3其他形式的冗余4.4设计模式在减少冗余时扮演的角色4.5很少有开发人员花费大量的时间去“修改”代码错误4.6冗余对代码质量其他方面的影响4.7小结第5章封装5.1未封装的代码:对全局变量的破坏5.2成员标志的封装5.3自封装成员5.4预防代码更改5.5封装引用对象的难点5.6用get()来打破封装5.7对象类型的封装5.8设计的封装5.9各个层次的封装5.10实用性建议:把困难封装起来5.11小结第6章面向接口的设计6.1针对接口的设计6.2接口的定义6.3接口约定6.4分离不同的视图6.5接口的模拟实现6.6让接口保持简单6.7避免过早采用继承体系6.8接口和抽象类6.9依赖反转原则6.10多态性概述6.11不是每个类都需要接口6.12小结第7章验收测试驱动开发7.1两种开发流程7.2验收测试7.3一个关于验收测试的实例7.4实现验收测试7.4.1针对用户界面的测试脚本7.4.2测试用户界面7.4.3xunit测试7.4.4验收测试框架7.4.5四种方法间的联系7.5一个练习7.6如果客户不告诉你怎么做的时候,你应该怎么办7.7小结第二部分基本态度第8章避免过度设计或设计不足8.1给开发人员的箴言8.2代码质量病理学8.3避免过度设计或设计不足8.4把复杂度和返工最小化8.5永不把代码变得更糟/仅在有目的的情况下降低代码质量8.6使代码容易修改,足够强大健壮,适应变化并安全可靠8.7在非面向对象的代码或遗留系统里编写易于修改代码的策略8.8小结第9章持续集成9.1建立源代码分支9.1.1多版本:特殊分支9.1.2孤立地工作:开发分支9.1.3问题、解决方案、新的问题9.2将主干内容合并回分支9.3测试驱动开发与合并成本9.4持续集成9.5持续集成服务器9.6小结第三部分设计问题第10章共性和可变性分析10.1用动词和名词来做指南:警告,前面有危险10.2真正的问题是什么10.3我们所需要知道的10.4共性和可变性分析10.4.1共性分析10.4.2可变性分析10.4.3面向对象设计“一箭三雕”10.5发掘对象的新范式10.6分析矩阵:一个用例学习10.7小结第11章以开放关闭原则为目标的重构11.1开放关闭原则11.1.1从开放关闭原则引申到其他11.1.2开放关闭原则是一个“原则”11.2重构11.2.1为何重构11.2.2负债还是投资11.2.3重构和遗留系统11.2.4以开放关闭原则为目标的重构11.2.5“及时”设计11.3小结第12章需求与功能接口12.1迪米特法则12.2耦合,可恶的耦合,还有依赖12.2.1耦合和可测试性12.2.2需求与功能12.3理想的分离方案:需求接口和功能接口12.4回到迪米特法则12.5小结第13章何时以及如何使用继承13.1“四人组”13.2初始向量,最终结果13.3优先委托13.4使用继承与使用委托13.5继承的使用13.6可扩展性13.7在敏捷开发里应用四人组的训诫13.8测试问题13.9更多第四部分附录附录a统一建模语言概览附录b代码质量附录c封装原始数据类型本信息来源于: