• 搜素结果

 / 

软件重构实战训练营(2天)

咨询公司
曾任职BEA(中国)资深软件架构师
7266
54275
1912
软件重构实战训练营(2天)
推荐课程
暂无评分
推荐课程
暂无评分
¥

每人

课程时长

课程排期

如您想参加此课程,您可以点击“我想参加”按钮提交您的需求,我们会及时与您联系

地点: 该课程暂无排期
没有地点信息
将课程带入到您的团队,为您的团队进行一对一辅导。
预约内训

课程详细[html版]

课程信息

这就是本课程所要讲述的内容---重构。简言之,该课程教你如何扭转系统腐化,重构复杂遗留系统,减低维护成本。在面对一个错综复杂的,不透明的,令人费解的系统时如何慢慢地,逐步地将其变成一个简单的,有良好组织和设计的系统。

培训特色

本课程注重实战,采用案例贯穿方式完成实践,收集了大量的真实案例,针对项目过程中技术人员常犯的错误进行了汇总,研讨,并最终形成培训教程。本次培训从程序员的编程思维开始讲解,通过大量的真实案例,详细地介绍了重构需要注意的要点以及难点,这些知识都是讲师十几年经验的总结。
本次课程1/3时间讲解核心思想,1/3时间动手重构实践,1/3点评分析总结。

目标收益

你们是否已经存在如下现象,如果有,请参加我们课程,我们给你最佳实践:
a)遗留系统的文档已经部分丢失和残缺,甚至没有
b)研发团队对系统的认识非常有限.包括对需求,架构,设计和代码
c)每当修改系统Bug时,莫名其妙的新bug就会屡次出现
d)增加新功能十分困难,即使简单新特性都需要很久时间才能完成
e)研发人员非常辛苦加班,并且没有成就感,没有工程师愿意维护老代码,甚至为了逃离维护工作,采取离职
f)如果仔细分析当前系统代码,就会发现代码关系是否混乱且难以维护
g)即使意思到重构的重要性,谁应该负责重构,如何开始,哪些需要重构

培训对象

各类软件研发中心的软件设计师、架构师, 项目经理,技术总监,质量部门经理。对于重构技术怀有疑问和困惑,需要梳理解答的团队和个人,效果最佳。

课程大纲

主题 内容

第一部分 为什么软件需要及时重构
第一单元 软件代码腐烂

内容一:软件业者的反思: 软件腐烂
1.软件腐烂(Software rot),也叫做代码腐烂(code rot)或软件腐朽(software decay)。它描述了随着时间的逝去感知到软件的缓慢衰退,其将最终导致它变得不完善、不可使用或难以维护。
2.软件腐烂(Software rot)有两种形式:
3.1)隐匿的腐烂:软件逐渐不再(仍)被使用随着剩余的应用程序的改变变得不能用。它已经被观察到不再被使用的软件有可能一年的半衰期;
4.2) 活动的腐烂:软件随着不断地被修改趋向于失去它的完整性。
5.破窗效应与技术债务
6.案例演示1-通过演示大型项目,随着客户需求的变化,导致软件结构混乱,大家反思,为什么? 你认为软件腐烂的原因? 反思你们公司的软件系统也面临这样的问题吗?

第二部分 重构基本概念
第二单元 何为重构

内容一:重构
1.重构概述
2.何时重构
3.重构的误区
4.重构是持续进行的,不要先编写烂代码,再抽出重构
5.如何发现哪些地方需要重构
6.如何保证重构的正确
7.如何测试重构
8.通过一个小案例演示重构的基本思想(什么时间重构,如何发现重构点,如何保证重构的正确性,最后如何验收)

内容二:案例—通过实际项目演示重构
1.介绍项目需求情况,进行设计
2.阅读代码指出代码坏症状
3.通过重构逐步改善代码质量
4.通过该案例演示重构的过程,我们遇到的难处,如何解决?

内容三:重构关键—代码的坏味道
1.代码坏味道概述
2.代码坏味道的分类
3.识别代码坏味道,是重构的最重要一步
4.所谓重构,无非就是嗅到坏味道,然后,一小步一小步的改了它。问题是,很多人对坏味道的容忍度让他们嗅不到坏味道,
5.案例分析—通过真实项目的代码,分析代码坏味道

内容四:代码坏味道—代码的质量底线
1.代码坏味道概述
2.代码坏味道的分类
3.代码坏味道----低级篇(重复的代码、过长的函数、过大的类、过长的参数列表、发散式变化、分散的修改)
4.代码坏味道----中级篇(伪面向对象的调用、数据泥团、基本类型的误用、switch-case结构的误用、平行继承体系、过薄的类、只有局部意义的成员变量)
5.代码坏味道----高级篇
6.通过案例,让学员寻找代码坏味道
7.可以根据客户现在的项目作为案例进行现场分析,找出相应的代码坏味道

内容五:某项目分析----重点了解现实项目代码的充斥大量坏味道
1.介绍项目需求情况,阅读现有代码指出代码坏症状
2.不看不知道,代码到底有多烂—触目惊心的代码
3.通过重构逐步改善代码质量
4.本案例学习多种重构方式

第三单元 重构

内容一:重构
1.重构手法概述
2.简要演示重构的主要手法
3.使用IDE重构工具进行重构
4.通过案例演示如何通过重构工具完成重构

内容二:Rhythm of Refactoring -baby step
1.Baby steps involve making a few code changes and then checking your work by running tests. Typical refactorings take seconds or minutes to perform
2.The Rhythm of Refactoring goes like this:
a)Verify that all automated tests (microtests) pass
b)Decide what code to change
c)Implement one or more refactorings carefully
d)Run the microtests whenever you wish to confirm that changes have not altered system behavior
e)Repeat until the refactoring is complete or revert to an earlier state

内容三: Refactoring Strategies & Tactics
1.Refactoring Strategy: Piecemeal Refactoring
2.Refactoring Strategy:Divide & Conquer
3.Refactoring Strategy:Narrowed Change
4.Refactoring Strategy:Parallel Change
5.Refactoring Strategy:Unified Methods
6.Refactoring Strategy:Evolved Target
7.Refactoring Strategy: Graceful Retreat
8.Refactoring Strategy: Gradual Cutover
9.Refactoring Strategy: Preparing for Change
10.Refactoring Tactic: Rejected Parameter
11.Refactoring Tactic: Caller Swap
12.Refactoring Tactic:Encapsulated Dependency

第四单元 重构难题

内容一:重构技术难题
1.如何发现重构点
2.知道重构的目标(结果)
3.如何去重构—重构实践
4.如何保证重构的正确性-单元测试

内容二:重构业务难题
1.重构手法概述
2.简要演示重构的主要手法

第三部分 重构实战一函数相关重构
第五单元 函数相关重构

内容一:函数的重构
1.函数的重构
2.巨型函数的种类
a)项目列表式巨型方法
b)锯齿状巨型方法
3.分解函数
4.助手方法提取
5.利用自动重构对付巨型方法
6.利用手工重构对付巨型方法
7.引入感知变量
8.函数依赖收集
9.分解助手方法和方法对象
10.通过案例介绍长函数的重构最佳实践

内容二:高质量函数/过程
1.为什么需要函数
2.函数复杂度度量
3.函数圈复杂度以及度量
4.函数抽象层次-单一抽象层次原则SLAP(Single Level of Abstrction Principle)
5.函数实现模式之—组合函数(Composed Method)
6.万恶之源—函数过长
7.函数的单一职责
8.函数第一原则:是要短小,函数第二原则:是还要短小,函数第三原则:是必须短小
9.函数重构之道—抽取方法(Extract Method)和抽取对象函数
10.函数命名—怎样取好的函数名
11.通过大量项目代码分析,函数的遇到的各种问题,如何编程高质量函数

内容三:函数易理解与沟通
1.函数主体流
2.函数的异常处理
3.函数主题流程简化方法1-助手方法
4.助手方法的应用场景
5.助手方法的效果
6.函数主题流程简化方法2-函数对象(MethodObject)
通过真实项目代码进行分析,如果提高代码的可读性

内容四:函数10个一
1.每个变量只用于单一用途
2.每一个行代码只表达一件事
3.一个循环只做一件事
4.单一抽象层次原则
5.代码组织得一次只做一件事情
6.函数体内只关注一种变化的原因(动机)
7.函数应该遵守单一职责
8.函数圈复杂应该小于一十
9.函数第一原则是必须要短小
10.编写函数时必须一心一意,专注,怀有谦卑的心态

第四部分 重构实战4一模块/架构重构
第六单元 重构模式

内容一:重构到模式
1.软件设计的基本原则
2.设计模式概述
3.设计模式的本质论
4.设计模式如何适应变化和封装
5.重构到模式的思路

内容二:案例---重点介绍重构基本类型依赖和对应模式
1.通过案例学习以下重构到模式手段
2.以State取代状态改变条件语句
3.以Strategy取代条件逻辑
4.以Composite取代隐含树
5.以Interpreter取代隐式语言
6.转移装饰功能到Decorator
7.用Builder封装Composite
8.重点学习案例的重构到模式的过程

内容三:案例---重点介绍重构代码重复和对应模式
1.通过案例学习以下重构到模式手段
2.构造Template Method
3.以Composite取代一/多之分
4.引入Null Object
5.用Adapter统一接口
6.用Fatory Method引入多态创建
7.重点学习案例的重构到模式的过程

第七单元 模块重构

内容一:模块重构
1.结合以下问题进行分析,具体内容还在整理之中
2.由于有些同事不会去分析数据流,不会去根据数据流去抽象和设计,从而导致了数据流的不少处理环节的代码互相耦合严重,公有变量不合理。建议去谈谈从数据流进行抽象和设计的方法。
3.我们提供给客户的软件产品,二次开发不太方便(可读性差,可扩展性差,可维护性差)。如何通过重构去达成更好的二次开发便利性?
4.如何通过合理的调整,确保迭代开发的过程真正做到“增量开发”,而不是“修改”已有代码?
5. 如何屏蔽硬件变化导致的软件系统需要大幅度的修改?
6.分析某项目,演示模块重构,如何在大型应用系统进行模块重构

第八单元 架构重构

内容一: 架构重构
1.软件架构概述
2.遗留系统的软件架构恢复
3.软件架构的重构时机
4.软件架构的重构步骤
5.架构坏味道
6.架构重构策略


内容二:案例分析—某互联网项目架构重构(根据时间调整)
1.项目背景以及相关需求
2.软件架构的演进与重构过程
3.质量属性对软件架构的驱动
4.架构的可扩展性架构
5.缓存技术在架构之中的应用
6.Web层的架构策略
7.中间层的架构和集群策略
8.大型并发系统Session的复制和容错架构策略
9.数据的架构
10.该案例主要演示软件架构的重构策略

第九单元 重构管理

内容一:安全重构
1.重构的恐惧心里
2.重构勇气
3.安全重构和祈祷式重构
4.安全重构保证
5.通过案例如何保证重构的正确性

第一部分 为什么软件需要及时重构
第一单元 软件代码腐烂

内容一:软件业者的反思: 软件腐烂
1.软件腐烂(Software rot),也叫做代码腐烂(code rot)或软件腐朽(software decay)。它描述了随着时间的逝去感知到软件的缓慢衰退,其将最终导致它变得不完善、不可使用或难以维护。
2.软件腐烂(Software rot)有两种形式:
3.1)隐匿的腐烂:软件逐渐不再(仍)被使用随着剩余的应用程序的改变变得不能用。它已经被观察到不再被使用的软件有可能一年的半衰期;
4.2) 活动的腐烂:软件随着不断地被修改趋向于失去它的完整性。
5.破窗效应与技术债务
6.案例演示1-通过演示大型项目,随着客户需求的变化,导致软件结构混乱,大家反思,为什么? 你认为软件腐烂的原因? 反思你们公司的软件系统也面临这样的问题吗?

第二部分 重构基本概念
第二单元 何为重构

内容一:重构
1.重构概述
2.何时重构
3.重构的误区
4.重构是持续进行的,不要先编写烂代码,再抽出重构
5.如何发现哪些地方需要重构
6.如何保证重构的正确
7.如何测试重构
8.通过一个小案例演示重构的基本思想(什么时间重构,如何发现重构点,如何保证重构的正确性,最后如何验收)

内容二:案例—通过实际项目演示重构
1.介绍项目需求情况,进行设计
2.阅读代码指出代码坏症状
3.通过重构逐步改善代码质量
4.通过该案例演示重构的过程,我们遇到的难处,如何解决?

内容三:重构关键—代码的坏味道
1.代码坏味道概述
2.代码坏味道的分类
3.识别代码坏味道,是重构的最重要一步
4.所谓重构,无非就是嗅到坏味道,然后,一小步一小步的改了它。问题是,很多人对坏味道的容忍度让他们嗅不到坏味道,
5.案例分析—通过真实项目的代码,分析代码坏味道

内容四:代码坏味道—代码的质量底线
1.代码坏味道概述
2.代码坏味道的分类
3.代码坏味道----低级篇(重复的代码、过长的函数、过大的类、过长的参数列表、发散式变化、分散的修改)
4.代码坏味道----中级篇(伪面向对象的调用、数据泥团、基本类型的误用、switch-case结构的误用、平行继承体系、过薄的类、只有局部意义的成员变量)
5.代码坏味道----高级篇
6.通过案例,让学员寻找代码坏味道
7.可以根据客户现在的项目作为案例进行现场分析,找出相应的代码坏味道

内容五:某项目分析----重点了解现实项目代码的充斥大量坏味道
1.介绍项目需求情况,阅读现有代码指出代码坏症状
2.不看不知道,代码到底有多烂—触目惊心的代码
3.通过重构逐步改善代码质量
4.本案例学习多种重构方式

第三单元 重构

内容一:重构
1.重构手法概述
2.简要演示重构的主要手法
3.使用IDE重构工具进行重构
4.通过案例演示如何通过重构工具完成重构

内容二:Rhythm of Refactoring -baby step
1.Baby steps involve making a few code changes and then checking your work by running tests. Typical refactorings take seconds or minutes to perform
2.The Rhythm of Refactoring goes like this:
a)Verify that all automated tests (microtests) pass
b)Decide what code to change
c)Implement one or more refactorings carefully
d)Run the microtests whenever you wish to confirm that changes have not altered system behavior
e)Repeat until the refactoring is complete or revert to an earlier state

内容三: Refactoring Strategies & Tactics
1.Refactoring Strategy: Piecemeal Refactoring
2.Refactoring Strategy:Divide & Conquer
3.Refactoring Strategy:Narrowed Change
4.Refactoring Strategy:Parallel Change
5.Refactoring Strategy:Unified Methods
6.Refactoring Strategy:Evolved Target
7.Refactoring Strategy: Graceful Retreat
8.Refactoring Strategy: Gradual Cutover
9.Refactoring Strategy: Preparing for Change
10.Refactoring Tactic: Rejected Parameter
11.Refactoring Tactic: Caller Swap
12.Refactoring Tactic:Encapsulated Dependency

第四单元 重构难题

内容一:重构技术难题
1.如何发现重构点
2.知道重构的目标(结果)
3.如何去重构—重构实践
4.如何保证重构的正确性-单元测试

内容二:重构业务难题
1.重构手法概述
2.简要演示重构的主要手法

第三部分 重构实战一函数相关重构
第五单元 函数相关重构

内容一:函数的重构
1.函数的重构
2.巨型函数的种类
a)项目列表式巨型方法
b)锯齿状巨型方法
3.分解函数
4.助手方法提取
5.利用自动重构对付巨型方法
6.利用手工重构对付巨型方法
7.引入感知变量
8.函数依赖收集
9.分解助手方法和方法对象
10.通过案例介绍长函数的重构最佳实践

内容二:高质量函数/过程
1.为什么需要函数
2.函数复杂度度量
3.函数圈复杂度以及度量
4.函数抽象层次-单一抽象层次原则SLAP(Single Level of Abstrction Principle)
5.函数实现模式之—组合函数(Composed Method)
6.万恶之源—函数过长
7.函数的单一职责
8.函数第一原则:是要短小,函数第二原则:是还要短小,函数第三原则:是必须短小
9.函数重构之道—抽取方法(Extract Method)和抽取对象函数
10.函数命名—怎样取好的函数名
11.通过大量项目代码分析,函数的遇到的各种问题,如何编程高质量函数

内容三:函数易理解与沟通
1.函数主体流
2.函数的异常处理
3.函数主题流程简化方法1-助手方法
4.助手方法的应用场景
5.助手方法的效果
6.函数主题流程简化方法2-函数对象(MethodObject)
通过真实项目代码进行分析,如果提高代码的可读性

内容四:函数10个一
1.每个变量只用于单一用途
2.每一个行代码只表达一件事
3.一个循环只做一件事
4.单一抽象层次原则
5.代码组织得一次只做一件事情
6.函数体内只关注一种变化的原因(动机)
7.函数应该遵守单一职责
8.函数圈复杂应该小于一十
9.函数第一原则是必须要短小
10.编写函数时必须一心一意,专注,怀有谦卑的心态

第四部分 重构实战4一模块/架构重构
第六单元 重构模式

内容一:重构到模式
1.软件设计的基本原则
2.设计模式概述
3.设计模式的本质论
4.设计模式如何适应变化和封装
5.重构到模式的思路

内容二:案例---重点介绍重构基本类型依赖和对应模式
1.通过案例学习以下重构到模式手段
2.以State取代状态改变条件语句
3.以Strategy取代条件逻辑
4.以Composite取代隐含树
5.以Interpreter取代隐式语言
6.转移装饰功能到Decorator
7.用Builder封装Composite
8.重点学习案例的重构到模式的过程

内容三:案例---重点介绍重构代码重复和对应模式
1.通过案例学习以下重构到模式手段
2.构造Template Method
3.以Composite取代一/多之分
4.引入Null Object
5.用Adapter统一接口
6.用Fatory Method引入多态创建
7.重点学习案例的重构到模式的过程

第七单元 模块重构

内容一:模块重构
1.结合以下问题进行分析,具体内容还在整理之中
2.由于有些同事不会去分析数据流,不会去根据数据流去抽象和设计,从而导致了数据流的不少处理环节的代码互相耦合严重,公有变量不合理。建议去谈谈从数据流进行抽象和设计的方法。
3.我们提供给客户的软件产品,二次开发不太方便(可读性差,可扩展性差,可维护性差)。如何通过重构去达成更好的二次开发便利性?
4.如何通过合理的调整,确保迭代开发的过程真正做到“增量开发”,而不是“修改”已有代码?
5. 如何屏蔽硬件变化导致的软件系统需要大幅度的修改?
6.分析某项目,演示模块重构,如何在大型应用系统进行模块重构

第八单元 架构重构

内容一: 架构重构
1.软件架构概述
2.遗留系统的软件架构恢复
3.软件架构的重构时机
4.软件架构的重构步骤
5.架构坏味道
6.架构重构策略


内容二:案例分析—某互联网项目架构重构(根据时间调整)
1.项目背景以及相关需求
2.软件架构的演进与重构过程
3.质量属性对软件架构的驱动
4.架构的可扩展性架构
5.缓存技术在架构之中的应用
6.Web层的架构策略
7.中间层的架构和集群策略
8.大型并发系统Session的复制和容错架构策略
9.数据的架构
10.该案例主要演示软件架构的重构策略

第九单元 重构管理

内容一:安全重构
1.重构的恐惧心里
2.重构勇气
3.安全重构和祈祷式重构
4.安全重构保证
5.通过案例如何保证重构的正确性

+加载更多
Donec quam felis

Thousand unknown plants are noticed by me: when I hear the buzz of the little world among the stalks, and grow familiar with the countless indescribable forms of the insects and flies, then I feel the presence of the Almighty, who formed us in his own image, and the breath

I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine. I am so happy, my dear friend, so absorbed in the exquisite sense of mere tranquil existence, that I neglect my talents. I should be incapable of drawing a single stroke at the present moment; and yet.

+加载更多

近期公开课推荐

13
十月
广东
互联网时代下的产品构建

做产品,讲究一个『神、智、器、识、势』。…

13
十月
北京
敏捷项目管理实战沙盘演练

成功产品的特性就是要以用户为中心,快速响…

20
十月
北京
产品『黑客』特训营

知识分两种,一种是显性知识,一种是隐性知…

26
十月
四川
产品经理技能提升训练营(2天版)

产品经理是个核心岗位,对产品的成败有着重…

26
十月
北京
卓越软件工程师代码整洁之道

该课程适应于各个阶段的技术人员.初级工程师…

27
十月
上海
U型产品创新实战训练营

U 首先代表用户(User),毕竟一切都要以用户…

课程反馈

当前课程还没有反馈信息

用户还看了其他课程

Oracle运维及管理

Oracle运维及管理

15368人看过
0人评价
敏捷嵌入式开发培训

敏捷嵌入式开发培训

9746人看过
0人评价

欢迎来到msup!

还不是msup会员?快来注册吧!

立即注册

服务热线

400-812-8020

market@msup.com.cn

官方微信公众号

微信公众号:msupclub

Copyright © 2017 msup

京ICP备09001521号