传播知识、推进社区建设,是 ThoughtWorks 企业文化的核心之一。因为我们的目标并不仅仅是通过帮助客户开发最好的软件系统,为他们带来更多的业务价值,而且还要提升软件开发行业的水准。
我们有许多员工或是在各类会议上担任讲师,或是积极参与开源项目建设,或是在博客和杂志上发表文章,分享传播经验。于是便有了 CruiseControl、有了 Selenium,有了《卓有成效的程序员》、《软件开发沉思录》……当然,还有手头这册迷你书。
自 09 年 3 月份起,"ThoughtWorks 实践集锦"这个专题已经在 InfoQ 上连载了十余篇文章,其中包括了团队协作、数据迁移、版本控制、测试、富客户端开发、持续集成等内容。这些文章均以具体的技术 / 管理实践为核心,希冀为读者提供行之有效的指导,在开发过程中充分发挥价值。
覃其慧的文章介绍了,如何让测试人员的工作更有效率,与其他人协作配合。章昱恒以 DBA 的视角,讲述了在数据迁移的工作中,利用敏捷开发常用的测试驱动、持续集成,并引入精益软件的开发技巧,高质量地保障数据迁移的顺利进行,为软件开发打造坚实的数据质量基础。陈金洲以他多个富客户端项目的开发经验为基础,总结了富客户端开发的多项原则与实践。
胡凯和乔梁同是 Cruise 开发团队的一员,他们的文章均来源于在 Cruise 产品中的多年开发经验:乔梁讲述了持续集成实践本身的重构与演进,胡凯的第一篇文章分析了 SVN 的局限性和分布式版本管理工具的种种特性,第二篇提出了一些原则,来帮助团队在不使用 Mock 的前提下,交付具有良好健壮性、可以快速运行的测试。
李光磊的"TDD 实践之实用主义",总结了他在 TDD 之路上披荆斩棘前行时,提炼出来的一个个实践"变种",以解决项目中遇到的一个个难题。纪律和规范是持续集成的基础,如果我们的项目组中存在着不一致的、不可复制的环境,则生产效率始终存在阻碍。李光磊在他的文章"环境无关的环境"中,讲述了如何建立规范,解决环境问题。
在"Tech Lead 的三重人格"一文中,熊节描述了一个优秀的 TechLead 应该承担起哪些职责──技术决策、流程监督、干扰过滤──才能充分发挥其能力,带领团队取得成功。李贝在"自动化测试的分层结构"中,将自动化测试分成测试用例层、逻辑层、待测系统层,分离测试逻辑与测试支撑代码,保证了测试代码的易理解、易维护、健壮。
这本书的主旨跟 09 年敏捷中国大会一样,紧扣"实效"二字。在敏捷已经得到越来越多的推广实施之后,我们更希望人们能够清楚的认识到目的和手段的区别,关注于如何使用实践、创造实践来不断解决问题,不断改进。
希望这本书能够对你有所帮助。
——ThoughtWorks 中国公司总经理 郭晓
免费下载迷你书
如果你喜欢本书,点击这里:[DOWNLOAD]。
迷你书目录
前言
目录
我和敏捷团队的五个约定
如何在敏捷开发中做好数据迁移
- 开发背景
- 数据迁移开发方法
- 典型问题
RichClient/RIA 原则与实践(上)
- 一切皆异步
- 视图管理
RichClient/RIA 原则与实践(下)
- 事件管理
- 线程管理
- 缓存与本地存储
- 结尾
- 感谢
- 参考
为什么我们要放弃 Subversion
- 快速可靠
- 便于协同工作
- 对小步前进友好
- 学习曲线低
- 总结
- 感谢
"持续集成"也需要重构 -- 持续集成实践在 Cruise 开发过程中的演进
- 基本持续集成 -- 万里长征第一步
- 阶段化持续集成 -- 平衡的艺术
- 过程化持续集成 -- 消除浪费
- 管道式持续集成 -- 企业级持续集成的解决方案
- 并发执行 -- 时间就是金钱,资源也是金钱
- 个人持续集成 -- 最大化利用资源
- 小结
Mock 不是测试的银弹
环境无关的环境
- 使用相对路径代替绝对路径
- 使用配置管理系统 (版本控制系统)
- 环境变量
- 缺省值 + 用户自定义属性
- 参考借鉴
Tech Lead 的三重人格
- 技术决策者
- 流程监督人
- 干扰过滤器
- 小结
自动化测试的分层结构
- 摘要
- 问题
- 解决办法
- 例子
- 这如何能解决问题?
- 常见问题解答
(番外篇)TDD 实践之实用主义
- 为沟通选择语言
- 用大量测试来驱动
- 一个环境,多个断言
- 小结
评论