【全新】 软件开发与创新:ThoughtWorks文集(续集) [美]ThoughtWorks公司 人民邮电出版社 9787115342942
本店图书 都是正版图书 可开电子发票 需要发票的联系客服!
¥
23.96
5.3折
¥
45
全新
仅1件
作者[美]ThoughtWorks公司
出版社人民邮电出版社
ISBN9787115342942
出版时间2013-11
装帧平装
开本其他
定价45元
货号8174548
上书时间2024-12-20
商品详情
- 品相描述:全新
- 商品描述
-
导语摘要
在软件开发中遇到困难时,如果得知前人也曾至此,便真是幸甚至哉。在美国ThoughtWorks公司编著的《软件开发与创新(ThoughtWorks文集续集)》中,ThoughtW0rks的领域专家们分享自身所学,将他们在IT及软件开发领域中久经考验的最佳洞见结集成册。这些经验会让我们受益良多,从测试到信息可视化,从面向对象到函数式编程,从增量开发到在交付中持续创新,从改善敏捷方法学到顶尖的语言极客范儿。无论何时,当你需要专家建议时,都能从这些已成功解决的问题中汲取营养。
每篇文章都源自一线的实践经验,可以拓展你的技能和视野。无论是从事软件开发、部署、测试的人员,还是软件开发的管理者,都可以从本书中获益。
作者简介
ThoughtWorks公司
ThoughtWorks公司于1993年在美国成立,现已经发展成为具有千人规模,在6个国家具有分公司的优选性IT咨询公司。公司汇集了许多业界思想优选者和众多高素质人才,致力于为客户解决很棘手很紧迫的问题,业务包括向客户交付定制应用软件、提供注重实效的咨询服务、协助企业进行敏捷开发以及开发软件等。
目录
第1章 引言 1第一部分 语言第2章 最有趣的语言 42.1 为什么语言很重要 52.2 一些有趣的语言 52.2.1 Clojure 52.2.2 CoffeeScript 102.2.3 Erlang 142.2.4 Factor 182.2.5 Fantom 212.2.6 Haskell 262.2.7 Io 302.3 总结 33第3章 面向对象程序设计:对象优于类 343.1 对象优于类 353.2 类关注与对象关注 363.2.1 角色的角色 363.2.2 职责分离 423.2.3 测试的角度 453.2.4 代码库里的线索 463.3 “对象关注”的语言 473.3.1 Ruby 473.3.2 JavaScript 533.3.3 Groovy 563.3.4 Scala 583.4 要点回顾 583.5 总结 59第4章 使用面向对象语言进行函数式编程 604.1 集合 604.1.1 转换思维 604.1.2 拥抱集合 634.1.3 勿忘封装 644.1.4 惰性求值 654.2 “一等公民”和高阶函数 674.3 状态最小化 694.4 其他理念 704.5 总结 73第二部分 测试第5章 极限性能测试 765.1 问题描述 765.1.1 分离性能测试的传统方式 765.1.2 极限编程和敏捷软件开发 775.1.3 分离性能测试的不足 785.2 另辟蹊径 785.2.1 独立的多功能团队 795.2.2 描述需求 805.2.3 设定计划与排定优先级 815.2.4 实现性能故事 825.2.5 展示与反馈 835.3 极限性能测试实践 835.3.1 性能负责人 835.3.2 自动化部署 845.3.3 自动化分析 855.3.4 结果仓库 855.3.5 结果可视化 865.3.6 自动化测试流程 865.3.7 健全性测试 875.3.8 持续性能测试 885.3.9 规范的性能提升 885.4 这对我们有何帮助 895.4.1 更好的性能 895.4.2 更低的复杂度 895.4.3 更高的团队效率 905.4.4 更合理的优先级排定 905.4.5 开启持续交付 905.5 总结 90第6章 测试驱动JavaScript 916.1 JavaScript的复兴 916.2 当前JavaScript的处理方式与问题 926.3 分离关注点 926.4 测试方式 1006.4.1 倾向于交互测试,而非集成测试 1006.4.2 在具体用例中使用HTML夹具编写集成测试 1006.4.3 使用验收测试验证所有组件的集成 1016.5 持续集成 1016.6 工具 1016.6.1 单元测试 1026.6.2 语法检查 1026.6.3 mock框架 1026.7 总结 102第7章 构建更好的验收测试 1037.1 快速测试 1037.1.1 基于用户行程的测试 1037.1.2 并行执行测试集 1047.1.3 考虑使用多种测试驱动器 1057.1.4 将测试分开运行 1077.1.5 等待页面元素显示时要小心 1077.2 有弹性的测试 1077.2.1 单独选择页面元素 1087.2.2 等待页面元素显示时要小心(再次强调) 1097.2.3 在测试中设置测试依赖的数据 1107.2.4 测试集成点 1107.3 易于维护的测试 1117.3.1 使用页面模型 1117.3.2 结构一致的测试集 1127.3.3 测试代码产品代码一视同仁 1137.3.4 切勿受限于工具 1137.4 付诸实践 1147.4.1 一地团队 1147.4.2 维护测试,人人有责 1157.4.3 故事启动 1157.4.4 结对测试开发 1157.4.5 故事展示 1167.5 总结 116第三部分 软件开发问题第8章 现代Java Web应用 1188.1 过去的状况 1188.1.1 有状态的服务器 1198.1.2 依赖容器 1198.1.3 违反HTTP规范 1208.2 无状态服务器 1208.2.1 集群 1208.2.2 cookie救世 1218.2.3 区分用户特定的数据 1218.2.4 安全cookie 1228.3 容器是可选的 1238.3.1 容器外测试 1238.3.2 我们真的需要容器吗 1258.4 按新鲜程度分区 1258.4.1 缓存:可扩展网站的秘密武器 1258.4.2 选择缓存的内容 1268.4.3 按新鲜程度分区简介 1268.4.4 反向代理和内容发布网络简介 1288.5 POST重定向到GET 1298.6 总结 130第9章 驾驭集成难题 1319.1 持续集成方法 1329.1.1 稳定基准 1329.1.2 集成stub 1339.1.3 构建流水线 1349.1.4 监控器 1349.2 定义集成契约 1359.3 度量和可见性 1359.4 总结 136第10章 实践中的特性开关 13710.1 简单特性开关 13810.2 可维护的特性开关 13810.2.1 依赖注入 13910.2.2 注解 14010.3 分离静态资源 14110.4 阻止意外泄露 14210.5 运行时开关 14210.6 不兼容依赖 14310.7 特性开关的测试 14310.8 删除完成特性的开关 14410.9 总结 144第11章 交付创新 14511.1 价值流向 14611.2 新方法 14711.2.1 协作文化 14711.2.2 敏捷产品调研与发现 14911.2.3 快速启动 15311.2.4 持续设计,持续交付 15511.3 总结 156第四部分 数据可视化第12章 一图胜千言 15812.1 闻闻咖啡 15812.2 可视化设计原则 15912.3 可视化设计流程 16012.3.1 定义领域任务 16012.3.2 任务抽象 16112.3.3 数据抽象 16112.3.4 可视化编码 16312.3.5 评估与完善 16712.4 可视化设计模式 16812.4.1 探索随时间变化的数据 16812.4.2 探索相关性 17012.4.3 探索层次与“局部到整体”关系 17012.4.4 探索连结和网络 17212.5 工具和框架 17312.5.1 可视化程序库 17312.5.2 图型化工具 17412.6 总结 174参考文献 176索引 178
内容摘要
Clojure是一种Lisp方言,但却并不是Common Lisp或Scheme的某种实现。事实上,它从众多不同的语言中汲取了很多灵感,因此是一个全新版本的Lisp。它运行于ⅣM之上,可以轻松访问任何既有的Java程序库。
有Lisp编程经验的读者一定知道“列表”(1ist)是Lisp的核心。Clojure将此特点发扬光大,并在列表之上加入了额外的抽象。因此,数据结构成为了该语言的核心。不仅是列表,还有向量、集合、Map,所有这些数据结构都有相应的语法,Clojure程序的代码本质上即是由这些数据结构写就的,也很终会表现为这些数据结构。相比于其他语言,Clojure有一点不同,它的数据结构是不能修改的。如果要修改它们,首先要描述出这个修改是什么样的,然后就会返回一个新的数据结构,旧的那个依然存在并可以使用。这似乎过于浪费。的确如此,它确实不如直接摆弄字节码效率高。但它也不像你想象的那样慢,因为Clojure的数据结构实现是很好成熟和智能的。刚才提到的数据结构的不变性,使Clojure可以轻松完成很多其他语言看来很好困难的工作。不可变的数据结构有一个很好明显的好处:由于永远不能修改,因而肯定能保证它们满足线程安全的要求。
今天,我们选择Clojure的主要原因在于它有一套很好周密的模式,十分适合处理并行与并发执行。Clojure的基本特点是不可变性。如果你需要可变性,那么可以根据控制可变性的预期方式,创建一些特殊的数据结构来进行模拟。
比如说,你想要确保某3个变量能同时改变,那么在Clojure里做到这一点并不难,只要将这些变量存人几个引用ref,然后使用clojure的软件事务性存储(STM)来协调变量访问即可。总之,Clojure有很多不错的特性。它与Java的互操作性很好实用。我们可以接近控制程序中的并发行为,同时不必使用诸如锁、互斥量(mutex)等容易出错的方法。
主编推荐
靠前知名00专家,敏捷运动创始人 Martin Fowler 以及诸多重量程序员与您一道:
应对很严苛的技术挑战
经营可持续的业务
追求软件很好
推动IT变革
在软件开发中遇到困难时,如果得知前人也曾至此,便真是幸甚至哉。在文集中,ThoughtWorks的领域专家们分享自身所学,将他们在IT及软件开发领域中久经考验的很好洞见结集成册。这些经验会让我们受益良多,从测试到信息可视化,从面向对象到函数式编程,从增量开发到在交付中持续创新,从改善敏捷方法学到很好的语言极客范儿。无论何时,当你需要专家建议时,都能从这些已成功解决的问题中汲取营养。
每篇文章都源自一线的实践经验,可以拓展你的技能和视野。无论是从事软件开发、部署、测试的人员,还是软件开发的管理者,都可以从本书中获益。
精彩内容
《软件开发与创新:ThoughtWorks文集(续集)》中涵盖的软件开发主题十分广泛,从优化敏捷方法论到核心语言都有涉及。其中包括对持续集成、测试和改进软件交付过程提出的独到建议,以及如何在面向对象语言和现代Java Web应用程序中使用函数式编程技术等。
《软件开发与创新:ThoughtWorks文集(续集)》条理清晰、思维严谨却又不乏生动活泼之处,即便是书中专业性最强的文章,也不会让人觉得难以理解。除了技术人员外,《软件开发与创新:ThoughtWorks文集(续集)》对相关的非技术人员也很有价值。
媒体评论
在软件开发中遇到困难时,如果得知前人也曾至此,便真是幸甚至哉。在美国ThoughtWorks公司编著的《软件开发与创新(ThoughtWorks文集续集)》中,ThoughtW0rks的领域专家们分享自身所学,将他们在IT及软件开发领域中久经考验的最佳洞见结集成册。这些经验会让我们受益良多,从测试到信息可视化,从面向对象到函数式编程,从增量开发到在交付中持续创新,从改善敏捷方法学到顶尖的语言极客范儿。无论何时,当你需要专家建议时,都能从这些已成功解决的问题中汲取营养。
每篇文章都源自一线的实践经验,可以拓展你的技能和视野。无论是从事软件开发、部署、测试的人员,还是软件开发的管理者,都可以从本书中获益。
— 没有更多了 —
以下为对购买帮助不大的评价