注册 | 登录      

社区主页 > 活动列表 > 当前活动

单元测试及重构实战训练营

已结束

时间: 04月20日 09:00 - 04月21日 17:00

地点: 北京 北京市海淀区北三环西路66号,北京理工国际教育交流中心3楼2号厅

活动人数: 30人

参与对象: 所有人可参加

费用: 2800元(不支持退款)

发起者: Scrum中文网

支付方式: 线上支付 (可提供发票)

组织者: 海丁网

0人赞了一下 | 0人踩了一下

赞一下 踩一下 0 人已参加 1081 次浏览

活动描述

单元测试及重构实战工作坊

                                             -提升软件内部质量

 

理论+实践实践超过60%,真实案例讲解练习-演示-讨论-案例讲解” 为一个单元,每天20单元,已经在众多知名企业成功交付,课程千锤百炼!

课程主办Scrum中文网

培 训 师资深技术专家,敏捷顾问BoMa中文授课

时 间2013年4月20-21日,上午9:30 到下午5:00分

地 点北京市海淀区北三环西路66号,北京理工国际教育交流中心3楼2号厅

特惠班价 格:2800元/人,团体3人及以上2500元/人     原价3900元/人

联系人:Owen   021-60485969             QQ   120662065

报名方式:请先填写完成报名表后发送邮件至:owen.yang@scrumcn.com ,收到报名表后,我们会与您联系,完成报名事宜。

一、 课程概述

“软件产品新功能越来越难加入?”

“代码越来越难懂,越来越难修改?”

“写这个模块的工程师离职了,文档又不全,里面的逻辑很乱,但是没人敢修改?”

“产品功能都开发不完,哪有时间写单元测试?”

“一个函数100行算什么,我们还有500行,1000行的!

作为项目经理/开发主管、开发或者测试人员,是否经常听到这样的声音、惊讶和问题? 是否大家都认可代码的质量差,但都无计可施、无能为力? 是否老板拍定了交付日期,开发团队除非拼命加班,否则无论如何也赶不上?

如何上述情况出现了一项,那么可以肯定的说:您的项目内部质量出现了问题。

怎么办? 内部出现了问题,就需要重构;想成功的重构,需要完备的单元测试。

您也许听过什么是重构,什么是单元测试,更有可能曾经尝试过重构和单元测试,但是:

要么:“我们的代码很乱,无法重构”;

要么:“我们的代码复杂,无法做单元测试”;

也许你小范围的尝试了,觉得不错,但是是否能应用在产品代码还心存疑惑;

甚至也许您已经很成功的使用了重构和单元测试,但是觉得对人要求太高,怎么推广到整个团队表示担心。

本课程为期两天,课程除了为您深入剖析什么是重构、什么是单元测试、单元测试和重构对人的要求是什么、带来哪些好处,对产品的会带来哪些影响,更重要的是帮助团队全面掌握如何做重构和单元测试的技巧。

课程采用结对编程的方式组织学员,以“练习-演示-讨论-讲解”为一个单元,由浅入深,循序渐进的方式,每天进行大量的学习单元(20个左右),让学员在丰富、密集的练习和互动中建立对重构和单元测试的认知、学习重构和单元测试正确的步骤和方法,在资深专家的引导和小组讨论中,自己体验、思考、理解,总结重构和单元测试对软件内部质量提升价值。

二、 课程受众

软件研发团队成员包括但不限于项目经理、开发经理、架构师、软件设计师、开发工程师、测试工程师等。

三、 学员反馈

“受益匪浅!马波老师授课生动、深入浅出、实践性强! ”——深圳晨星

“寓教于乐,讲师实践经验丰富、理论联系实际,十分透彻! ”——盘古搜索

“重构和单元测试培训让我对我们的项目又重拾了信心! ”——中兴电子

“重构和单元测试培训让我重新正确认识了这两个实践的意义和做法! ”——东方海外

四、 课程优势

资深敏捷技术专家授课,深入浅出, 贴近实战

理论+实操演练,以“练习-演示-讨论-讲解” 为一个单元,每天20单元

可以同时采用多种编程语言进行授课,包括但不限于:Java, .Net, C#, C++, Python, Ruby等

来自成功企业的经过验证的实战经验

五、 课程收益

学习结束后,学员对重构和单元测试能建立正确、深入的观点和理解,掌握重构和单元测试的基本实践、要点、流行的工具和常见的误解和错误的做法。

六、 课程要点

第一天 重构

1.  识别代码中的坏味道

用团队中的产品代码做例子分析所出现的坏味道

结对讨论和分析

总结、讲解、概要分析所有种类的坏味道(21种)

结对讨论和分析

2.  正确认识和对待坏味道

3.  为什么需要重构?

重构的考虑、成本、粒度、频率和方式

4.  学习重构的原则和步骤

5.  学习正确的重构步骤

6.  练习小规模重构 - 如何重构一个类

实践环节:

㮿   

重构的循环

[讲座]识别类内的坏味道

[讲座]重构的循环

[讲座]什么时候算做完了?

[讲座]在一个重构之内

[练习]小步前进 - 识别重构常用的步骤

[练习]简单设计 - 如何判断简单,你是怎么理解的

㰏   

已知的Smells

㰏                      [重构]Extract Method / Class / Subclass / Introduce

1.  Rename Method

2. Introduce Assertion

3. Duplicate Observer Data

4. Replace Parameter with Method

5. Preserve Whole Object

6. Introduce Parameter Object

[讲座&练习]注释         

[讲座&练习]长方法

[讲座&练习]大类

[讲座&练习]长参数列表

[练习]测验:Smells和重构

[讲座]Smells和重构

命名

    [重构]

    [讲座&练习]在名字中嵌入了类型

    [讲座&练习]无法达意的名字

    [讲座&练习]不一致的名字      

  

不必要的复杂性

    [重构]

    [讲座&练习]死代码

    [讲座&练习]投机未来的可能性

    [讲座]成对出现的重构

    

重复

    [重构]

    [讲座&练习]神奇数字

    [讲座&练习]重复的代码

    [讲座&练习]可互换的类有不同的接口

    

条件逻辑

    [重构]

    [讲座&练习]空值检测

    [讲座&练习]复杂的布尔表达式

    [讲座&练习]特殊处理的Case

    [讲座&练习]模拟的继承

练习较大规模重构 - 多个类之间的重构

描述数据

    [讲座&练习]主要的困扰

    [讲座&练习]数据类

    [讲座&练习]数据块

    [讲座&练习]临时字段

    

继承

    [讲座&练习]子类拒绝来自父类的遗产

    [讲座&练习]不合适的亲密关系(生成子类)

    [讲座&练习]Lazy Class

责任

    [讲座&练习]父类嫉妒子类的特性

    [讲座&练习]不合适的亲密关系(提取父类)

    [讲座&练习]消息链

    [讲座&练习]中间人

适应变化

    [讲座&练习]不同的变化动机

    [讲座&练习]散弹猎枪式的修改

    [讲座&练习]平行继承结构    

    

用作公共库的类

[讲座&练习]不完整的库类

第二天 单元测试

 单元测试入门:

[演示] 用JUnit 4进行单元测试 - 初步掌握用 JUnit 4 进行单元测试的能力

[练习] 如何按业务价值导向进行单元测试设计

树立正确的单元测试认识、概念和思路

Fixture组织

单测的力度

如何划分单元测试

[讨论&分析] 为什么不写单元测试

[讨论&分析] 谁该对(外部/内部)质量负责

[讲座] 什么不是单元测试

[讲座] 什么是单元测试

[讲座] 项目中单元测试策略

怎么写单元测试

[讲座] 单元测试结构

[讲座] 单元测试内容

[练习] 如何组织测试数据

[讨论&分析] 边界条件

[练习] 如何用Mock辅助边界条件测试

单元测试重构

[讨论&分析] 识别单元测试中的坏味道

[练习] 重构单元测试

单元测试和构建流水线(build pipeline)

[讨论&分析] 单元测试在构建流水线中的位置和作用

[讲座&练习] 用Buildr做Java 项目构建

[讲座&练习] 用Rake做Ruby 项目构建

[讲座&练习] 用 Jenkins/Hudson 做持续集成

• 最后总结 

七、 课程讲师

Bob Ma
      资深敏捷教练、培训师,IT技术专家

Bob是一位资深敏捷教练、培训师,IT技术专家。曾经就职于百度,Thoughtworks, 挪威船级社(DNV),耐瑞唯信(NagraVision)等多家知名企业,有十多年软件行业经验。他在IT战略规划和转型、软件开发方法和过程改进等方面,他拥有5年的咨询经验;在开发分布式、多级(multi-tier)、多层(multi-layer)企业应用系统方面,他拥有超过6年的专业开发经验,在金融,Web,安全,多媒体应用等多种领域也拥有丰富的经验。

Bob的专长是企业应用架构、面向对象设计和分析、敏捷开发方法(测试驱动开发、重构、演进式设计、持续部署等)、敏捷软件项目管理等。

他曾为腾讯、东方海外(香港)、汤森路透、雅虎(中国)、51.com、QuoVadis、晨星(MorningStar)、中科方德等国内外多家软件企业实施过敏捷相关的培训和教练工作。他曾作为高级架构师和高级过程改进工程师负责某著名搜索引擎网站的最核心的项目的敏捷导入和实施工作。在已经实施的一个季度中,实现了需求的Story/Backlog管理,workload estimation和planning,在此基础上实现了项目进度和速度的可视化管理;在开发实践方面,实现了持续集成,通过面向对象训练营(Object-Oriented Boot Camp, OOBC)培训工程师学习和掌握测试驱动开发,重构和演进式设计,结对编程。

在软件社区内,Bob是一位积极的技术推进和传播者,他是企业应用开发技术和敏捷社区中活跃的一员,曾多次在“中国软件开发者大会”上作报告。他还翻译了《Enterprise Javawith UML》和《Developing Jini Application with J2ME Technology》等书籍。

八、 课后服务及跟进

培训结束后2个月内,将对学员提供免费的电话、邮件或在线的技术支持服务。

定期组织多样化的公益性沙龙及学术交流活动。

 

网址:http://www.ScrumCN.comhttp://www.51Agile.com

可能感兴趣的活动查看全部活动>>

可能感兴趣的职位

15546
Scrum中文网(海丁号:No.15546)
向TA提问 | 登录后才可以提问哦 去他主页>
海丁微名片 - 人才地图 - IT求职 - 海丁介绍 - 客服帮助 - 友情链接 - 网站地图

海丁网 @2011-2014(沪ICP备12001151号)