课程特点
由拥有丰富TDD经验的讲师以开发项目的方式授课,穿插提炼知识点。
有针对性地介绍主流语言下开发特定应用(WEB,数据库,服务器)的完整工具链。
实践完整的TDD生态系统,包括结对编程、持续集成和演进式设计等。
分享讲师在各个公司推行TDD的经验,助力TDD在你公司落地。
课程大纲
·第一天上午:开发项目A
·第一天下午:开发项目B
·第二天上午:开发项目B(继续)
·第二天下午:开发项目C
·第三天上午:开发项目C(继续)
·第三天下午:开发项目C(继续)
期间循序渐进学习下列知识点:
·TDD的节奏
·TDD的两个原则
·TDD的目标
·TDD与行为驱动开发(Behaviour Driven Development)
·TDD与验收测试驱动开发(Acceptance Test Driven Development)
·识别代码中的坏味道
·重构工具及使用
·常用重构技巧
·重构与详细设计驱动开发的区别
·利用重构消灭重复和简化依赖关系
·遗留系统重构的要点
·利用测试设计接口
·单元测试框架
·常见测试辅助工具(如Isolation Frameworks)
·利用DBDeploy为增量的数据库开发建立沙盒环境
·测试在TDD中的重新定位
·编写可读测试的最佳实践
·编写值得信赖测试的最佳实践
·编写可维护测试的最佳实践
·建立和维护测试Fixture
·TDD工具链
·搭建和配置Hudson持续集成平台
·持续集成最佳实践
·Clean Code
·OO设计的DIY原则
·OO设计的Tell Don't Ask原则
·Single Responsibility原则
·Open Closed原则
·Liskov Substitution原则
·Interface Segregation原则
·Dependency Inversion原则
·领域知识在设计中的作用
·利用“统一语言”沟通设计
·演进式设计的要点
·真实项目中的TDD
·TDD在敏捷开发中的位置
·TDD对传统开发和设计习惯的启示和挑战
·TDD对软件开发流程的影响
·TDD对个体和组织的转变
·TDD在公司的实施与落地
·TDD投入产出的调研数据