新书报道
当前位置: 首页 >> 电子电气计算机信息科学 >> 正文
软件开发与创新
发布日期:2014-06-13  浏览

[内容简介]

在这本文集中,你会找到各种来自一线的建议,诸如持续集成、测试,以及改善软件交付流程,等等。本书会介绍人们怎样在面向对象语言中使用函数式编程技术,现代Java Web应用,以及处理JavaScript中的各种问题。书中还会概览当下最有趣的程序设计语言,以及信息可视化的发展情况。这些都是久经考验的洞见,因为它们都是来自ThoughtWorks专家的实践经验。本书通过各种实用及时的话题,展现了ThoughtWorks宽泛的才智和对编程技术的独特见解。

[目录]
第1章 引言  1
第一部分 语言
第2章 最有趣的语言  4
2.1  为什么语言很重要  5
2.2  一些有趣的语言  5
2.2.1  Clojure  5
2.2.2  CoffeeScript  10
2.2.3  Erlang  14
2.2.4  Factor  18
2.2.5  Fantom  21
2.2.6  Haskell  26
2.2.7  Io  30
2.3  总结  33
第3章 面向对象程序设计:对象优于类  34
3.1  对象优于类  35
3.2  类关注与对象关注  36
3.2.1  角色的角色  36
3.2.2  职责分离  42
3.2.3  测试的角度  45
3.2.4  代码库里的线索  46
3.3 “对象关注”的语言  47
3.3.1  Ruby  47
3.3.2  JavaScript  53
3.3.3  Groovy  56
3.3.4  Scala  58
3.4  要点回顾  58
3.5  总结  59
第4章 使用面向对象语言进行函数式编程  60
4.1  集合  60
4.1.1  转换思维  60
4.1.2  拥抱集合  63
4.1.3  勿忘封装  64
4.1.4  惰性求值  65
4.2 “一等公民”和高阶函数  67
4.3  状态最小化  69
4.4  其他理念  70
4.5  总结  73
第二部分 测试
第5章 极限性能测试  76
5.1  问题描述  76
5.1.1  分离性能测试的传统方式  76
5.1.2  极限编程和敏捷软件开发  77
5.1.3  分离性能测试的不足  78
5.2  另辟蹊径  78
5.2.1  独立的多功能团队  79
5.2.2  描述需求  80
5.2.3  设定计划与排定优先级  81
5.2.4  实现性能故事  82
5.2.5  展示与反馈  83
5.3  极限性能测试实践  83
5.3.1  性能负责人  83
5.3.2  自动化部署  84
5.3.3  自动化分析  85
5.3.4  结果仓库  85
5.3.5  结果可视化  86
5.3.6  自动化测试流程  86
5.3.7  健全性测试  87
5.3.8  持续性能测试  88
5.3.9  规范的性能提升  88
5.4  这对我们有何帮助  89
5.4.1  更好的性能  89
5.4.2  更低的复杂度  89
5.4.3  更高的团队效率  90
5.4.4  更合理的优先级排定  90
5.4.5  开启持续交付  90
5.5  总结  90
第6章 测试驱动JavaScript  91
6.1  JavaScript的复兴  91
6.2  当前JavaScript的处理方式与问题  92
6.3  分离关注点  92
6.4  测试方式  100
6.4.1  倾向于交互测试,而非集成测试  100
6.4.2  在具体用例中使用HTML夹具编写集成测试  100
6.4.3  使用验收测试验证所有组件的集成  101
6.5  持续集成  101
6.6  工具  101
6.6.1  单元测试  102
6.6.2  语法检查  102
6.6.3  mock框架  102
6.7  总结  102
第7章 构建更好的验收测试  103
7.1  快速测试  103
7.1.1  基于用户行程的测试  103
7.1.2  并行执行测试集  104
7.1.3  考虑使用多种测试驱动器  105
7.1.4  将测试分开运行  107
7.1.5  等待页面元素显示时要小心  107
7.2  有弹性的测试  107
7.2.1  单独选择页面元素  108
7.2.2  等待页面元素显示时要小心(再次强调)  109
7.2.3  在测试中设置测试依赖的数据  110
7.2.4  测试集成点  110
7.3  易于维护的测试  111
7.3.1  使用页面模型  111
7.3.2  结构一致的测试集  112
7.3.3  测试代码产品代码一视同仁  113
7.3.4  切勿受限于工具  113
7.4  付诸实践  114
7.4.1  一地团队  114
7.4.2  维护测试,人人有责  115
7.4.3  故事启动  115
7.4.4  结对测试开发  115
7.4.5  故事展示  116
7.5  总结  116
第三部分 软件开发问题
第8章 现代Java Web应用  118
8.1  过去的状况  118
8.1.1  有状态的服务器  119
8.1.2  依赖容器  119
8.1.3  违反HTTP规范  120
8.2  无状态服务器  120
8.2.1  集群  120
8.2.2  cookie救世  121
8.2.3  区分用户特定的数据  121
8.2.4  安全cookie  122
8.3  容器是可选的  123
8.3.1  容器外测试  123
8.3.2  我们真的需要容器吗  125
8.4  按新鲜程度分区  125
8.4.1  缓存:可扩展网站的秘密武器  125
8.4.2  选择缓存的内容  126
8.4.3  按新鲜程度分区简介  126
8.4.4  反向代理和内容发布网络简介  128
8.5  POST重定向到GET  129
8.6  总结  130
第9章 驾驭集成难题  131
9.1  持续集成方法  132
9.1.1  稳定基准  132
9.1.2  集成stub  133
9.1.3  构建流水线  134
9.1.4  监控器  134
9.2  定义集成契约  135
9.3  度量和可见性  135
9.4  总结  136
第10章 实践中的特性开关  137
10.1  简单特性开关  138
10.2  可维护的特性开关  138
10.2.1  依赖注入  139
10.2.2  注解  140
10.3  分离静态资源  141
10.4  阻止意外泄露  142
10.5  运行时开关  142
10.6  不兼容依赖  143
10.7  特性开关的测试  143
10.8  删除完成特性的开关  144
10.9  总结  144
第11章 交付创新  145
11.1  价值流向  146
11.2  新方法  147
11.2.1  协作文化  147
11.2.2  敏捷产品调研与发现  149
11.2.3  快速启动  153
11.2.4  持续设计,持续交付  155
11.3  总结  156
第四部分 数据可视化
第12章 一图胜千言  158
12.1  闻闻咖啡  158
12.2  可视化设计原则  159
12.3  可视化设计流程  160
12.3.1  定义领域任务  160
12.3.2  任务抽象  161
12.3.3  数据抽象  161
12.3.4  可视化编码  163
12.3.5  评估与完善  167
12.4  可视化设计模式  168
12.4.1  探索随时间变化的数据  168
12.4.2  探索相关性  170
12.4.3  探索层次与“局部到整体”关系  170
12.4.4  探索连结和网络  172
12.5  工具和框架  173
12.5.1  可视化程序库  173
12.5.2  图型化工具  174
12.6  总结  174
参考文献  176
索引  178

关闭


版权所有:西安交通大学图书馆      设计与制作:西安交通大学数据与信息中心  
地址:陕西省西安市碑林区咸宁西路28号     邮编710049

推荐使用IE9以上浏览器、谷歌、搜狗、360浏览器;推荐分辨率1360*768以上