第一讲:测试驱动开发与软件重构最佳实践(2天,12小时)
张逸老师 前ThoughtWorks 架构师、敏捷教练
拥有近10年的软件开发与架构设计经验,主要专注于软件架构、设计模式、领域驱动设计和敏捷开发实践。工作期间,在多个项目担任了软件架构 师,敏捷教练等角色。Bruce熟悉各种开发语言平台,包括Java、C#、Ruby以及Scala等,具有丰富的 企业软件系统和分布式开发经验。他作为咨询师和培训师,多次为惠普、可口可乐、摩托罗拉、第九城市、CA、携程等企业提供过咨询与培训服务,并翻译了和编 写多部著作。
测试驱动开发训练营以理论讲解结合案例演练,全方位梳理测试驱动开发的流程,帮助学员掌握整洁编码、单元测试与重构的技巧,从而使得学员能够在实际项目开发中合理运用测试驱动开发,提高编码质量,打造高效的开发团队,并在企业中有效推进测试驱动开发实践。
第一关 测试加油站 | 测试驱动开发的基础是正确地运用框架编写单元测试。要了解什么是单元测试,编写单元测试的价值,并能熟练运用单元测试框架。JUnit框架。 |
第二关 对象健身操 | 测试驱动开发的驱动力在于任务分解和测试先行,但如果不具备足够的面向对象设计能力,就会影响到对职责的判断,无法做到有效而合理的对象协作,也无法判断该在何时对功能进行抽象。 |
第三关 重构工具箱 | 测试驱动开发的节奏是“红-绿-重构”,没有重构,测试驱动开发就无法保证代码质量,如果不及时发现代码的坏味道,就会导致“破窗效应”,直到代码腐化至难以重构的地步,测试驱动开发带来的红利就被抵消殆尽了。 |
演练 | 在具备了单元测试、面向对象设计与重构知识之后,就可以开始TDD的训练了。TDD的工作主要分为任务分解与测试驱动,开发人员需要进行实战演练才能真正体会TDD的好处。本部分将通过一个完整的案例进行实操训练。 |
第五关 重构到模式 | 通过识别代码的坏味道,然后利用重构手法改进代码,逐步形成设计模式,可以有效地避免过度设计,保证编码实现的恰如其分。 |
丁老师 公司级敏捷教练和代码大全、代码设计训练营教练
13年软件开发经验,8年项目管理和流程改进经验,指导并参多个团队由传统研发模式向敏捷研发模式转型(其中超过100人的大型团队成功项目级敏捷转型5个)。
在敏捷导入、指导团队转型、CI、核心技术实践、自组织团队建设等方面具有丰富的实战经验;对如何提升员工代码设计能力和代码内在质量、遗留代码重构、架构设计等方面也有较多理解和解决思路;精益创业教练,曾指导多个创业团队产品设计、团队运作、技术架构。
大量工程实践和研究表明:采用TDD的开发者更少的使用Debugger,更能保持“小步快跑”的开发节奏,对产品质量的信心更大;同时,虽然TDD要求编写更多的代码,但是开发时间往往更短,大量的单元测试使产品代码的质量更高、设计的可测试性更强,更易实现高内聚低耦合的设计,从而加入新需求和缺陷排查所需的时间更短,项目成本更低。根据我们开发、培训和咨询经验,TDD几乎是无法自学的!
TDD是敏捷开发实践中最重要的一招,同时也是最难的一招。为了掌握TDD,除了了解基本的节奏、步骤和原则,还需要大量的练习和观摩,而一个良好的有教师代领和点拨的开端对学习和掌握TDD有非常大的帮助和作用。
学习结束后,学员对TDD建立正确、深入的观点和理解,了解测试驱动开发的基本步骤、节奏、原则和常见的误解和错误的做法,可以开始在生产环境中尝试使用测试驱动开发。
面向企业软件研发团队包括但不限于系统架构师、设计师、开发人员、测试人员等。
TDD实战部分 | 2 TDD实战部分 |
重构实战 | 3 TDD的手段之重构 |