测试驱动开发与软件重构

如何写出让用户信任的产品?首先要写出坚实可靠的代码才行。测试驱动开发与软件重构, 它能让你的产品代码更坚实。

 

【课程形式】

本课程将会采用全程Code Kata的学习方式。每 2 名成员会自发形成一个作战单元,每个作战单元都会有自己指定的“作战区域”和“武器装备”。我们将共同穿越那些危险重重的“编程陷阱”和“开发沼泽”,这包括“场景再现”、“Code Kata”、“复盘总结”三个部分:

“场景再现”环节。由教练扮演“驾驶员”和“领航员”角色,模拟演练在实际开发场景中的编程实践。

每2位开发者,共同组建结对伙伴(其间2位教练会作为开发者参与随机分配),完成一个“番茄钟”的“Code Kata”练习。

“复盘总结”,绘制知识体系雷达图。

让那些真正来自第一线的编程实践(ATDD + TDD + TOOLS +PAIR PROGRAMMING + REFACTOR + DESIGN PATTERNS)融入我们的血液,成为我们身体中的一部分。

我们来自开发实战第一线,我们是“ Programming Samurai”。

 

【培训对象】

注重实效的开发人员、开发工程师、开发团队负责人等。

 

【培训内容】

 

时间

场景再现

Workshop/Code Kata

第一天

面向对象编程与实战方法

面向对象的知识地图

面向对象的原则

①   ISOLD原则(Single Responsibility原则,Open Closed原则,Liskov Substitution原则,Interface Segregation原则,Dependency Inversion原则)

②   DRY原则

③  

面向对象的模式与方法

④   模式(架构模式、分析模式、设计模式、实现模式)

⑤   方法:TDDUDDDDDFDDBDD

面向对象的实践与工具

⑥   实践(Pair ProgrammingUnit TestRefactor)

⑦   工具(XUnitMockGitMavenJenkins)

三个基本元素

角色、职责、协作

用例驱动开发

面向对象的软件开发

角色、职责、协作

UMLOOAD

设计画布

四色建模法

健壮性分析图法

CRC卡片法

Workshop:E-learning

绘制用例图

用户故事

粒度与层次

场景

设计画布

角色、职责、协作

验收测试驱动开发

实例化需求

场景驱动设计

行为驱动开发

使用Cucumber

确定角色、职责、协作

Kata_01:Order Payment

从故事开始

基于文本的自动化

基于Gherkin语法

GivenWhenThenAndBut

富有表现力的场景

组织代码

角色、职责、协作

测试驱动开发

基本匠艺实践

红色

绿色

蓝色

TDD三项法则

F.R.I.S.T

Kata_02:Currency

寻找结对伙伴

选取用户故事

编写测试用例

红色->绿色->蓝色

伪实现

显明实现

三角法

第二天

重构与设计模式

三个基本手法

抽象、封装、多态

重构工具箱

腐烂的代码

识别坏味道

应用重构技法

小步前进

Clean Code

Kata_03:Trainning

实现功能的代码

识别代码坏味道

重构手法运用

重构导向模式

绘制重构地图

重构导向模式

可读性好的代码

由异味导向的重构

由原则导向的重构

应用设计模式

抽象变化点

封装职责

利用多态进行解耦

Kata_04:iCourse

重构到策略模式

重构到工厂模式

重构到命令模式

重构到模板模式

重构到职责链模式

重构到适配器模式

重构到MVC框架

解构设计模式

识别变化点

关注点分离

职责的抽离

封装变化点

三种封装手法

依赖解耦

组合还是多态

设计的原本

 


 

【培训师】

由业界知名的架构师、自称“小程序员”的姜老师亲自授课:

姜老师  线下交流组织“设计匠艺”核心小组成员、线上“产品经理俱乐部”组织者,开源项目AgileUML的提交者,曾拿过IBM两个奖项,于05、09年先后在863国家数字油田的项目中任“架构师”。目前正在抓紧完成在线CodeKata网站iDojo的编码。喜欢线下技术活动的各种交流和分享,热衷于实用主义和敏捷开发技术。
测试驱动的编程是 XP 困扰程序员的一个方面。对于测试驱动的编程意味着什么以及如何去做,大多数人都做出了不正确的假设。这个月,XP 方面的讲师兼 Java 开发人员 Roy Miller 谈论了测试驱动的编程是什么,它为什么可以使程序员的生产力和质量发生巨大变化,以及编写测试的原理。请在与本文相随的 论坛中提出您就本文的想法,以飨笔者和其他读者。(您也可以单击本文顶部或底部的“讨论”来访问该论坛。) 最近 50 年来,测试一直被视为项目结束时要做的事。当然,可以在项目进行之中结合测试测试通常并不是在 所有编码工作结束后才开始,而是一般在稍后阶段进行测试。然而,XP 的提倡者建议完全逆转这个模型。作为一名程序员,应该在编写代码 之前编写测试,然后只编写足以让测试通过的代码即可。这样做将有助于使您的系统尽可能的简单。 先编写测试 XP 涉及两种测试: 程序员测试和 客户测试测试驱动的编程(也称为 测试为先编程)最常指第一种测试,至少我使用这个术语时是这样。测试驱动的编程是让 程序员测试(即单元测试 ― 重申一下,只是换用一个术语)决定您所编写的代码。这意味着您必须在编写代码之前进行测试测试指出您 需要编写的代码,从而也 决定了您要编写的代码。您只需编写足够通过测试的代码即可 ― 不用多,也不用少。XP 规则很简单:如果不进行程序员测试,则您不知道要编写什么代码,所以您不会去编写任何代码。 测试驱动开发(TDD)是极限编程的重要特点,它以不断的测试推动代码的开发,既简化了代码,又保证了软件质量。本文从开发人员使用的角度,介绍了 TDD 优势、原理、过程、原则、测试技术、Tips 等方面。 背景 一个高效的软件开发过程对软件开发人员来说是至关重要的,决定着开发是痛苦的挣扎,还是不断进步的喜悦。国人对软件蓝领的不屑,对繁琐冗长的传统开发过程的不耐,使大多数开发人员无所适从。最近兴起的一些软件开发过程相关的技术,提供一些比较高效、实用的软件过程开发方法。其中比较基础、关键的一个技术就是测试驱动开发(Test-Driven Development)。虽然TDD光大于极限编程,但测试驱动开发完全可以单独应用。下面就从开发人员使用的角度进行介绍,使开发人员用最少的代价尽快理解、掌握、应用这种技术。下面分优势,原理,过程,原则,测试技术,Tips等方面进行讨论。 1. 优势 TDD的基本思路就是通过测试来推动整个开发的进行。而测试驱动开发技术并不只是单纯的测试工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值