重构-改善既有系统的代码,设计与架构的最佳实践-
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重构
软件遗留系统的维护和开发
高级培训班通知
大多数软件开发方面的培训都是关于新系统的设计,讲师教你如何从无到有创建出一个新的应用来。然而实际情况却是,真正身处业界往往大部分时候面对的却是既有遗留系统:添加新功能、寻找bug,以及维护别人写的代码。因此社会上的大量培训和实际情况产生了脱节.随着不同产品的推出、不同客户,不同版本的发布,需要维护的遗留代码越来越多,重构也就在所难免.迄今为止所有的软件系统都会变成遗留系统,并且都遭遇了缓慢,不可抗拒的腐化,因此软件开发人员不得不面对既有系统的混乱代码.而本课程正是告诉你如何重构既有的遗留系统,如何重构代码,重构设计,重构架构.
一、你需要该课程吗?
你们是否已经存在如下现象,如果有,请参加我们课程,我们给你最佳实践:
a)遗留系统的文档已经部分丢失和残缺,甚至没有
b)研发团队对系统的认识非常有限.包括对需求,架构,设计和代码
c)每当修改系统Bug时,莫名其妙的新bug就会屡次出现
d)增加新功能十分困难,即使简单新特性都需要很久时间才能完成
e)研发人员非常辛苦加班,并且没有成就感,没有工程师愿意维护老代
码,甚至为了逃离维护工作,采取离职
f)如果仔细分析当前系统代码,就会发现代码关系是否混乱且难以维
护
g)即使意思到重构的重要性,谁应该负责重构,如何开始,哪些需要重
构
h)如何保证安全重构,如何保证重构的正确性,也许重构后,系统运行
不起来
i)大型项目如何实践重构,我们系统都已经很多版本,很多客户
二、培训对象
各类软件研发中心的软件设计师、架构师,项目经理,技术总监,质量部门经理。对于重构技术怀有疑问和困惑,需要梳理解答的团队和个人,效果最佳。
三培训特色
本课程注重实战,采用案例贯穿方式完成实践,收集了大量的真实案例,针对项目过程中技术人员常犯的错误进行了汇总,研讨,并最终形成培训教程。本次培训从程序员的编程思维开始讲解,通过大量的真实案例,涵盖了代码重构,设计重构,架构重构3个层次,详细地介绍了重构需要注意的要点以及难点,这些知识都是讲师十几年编程经验的总结。
四、学员基础
学员学习本课程应具备下列基础知识:
λ了解Java/C#或者C++任一面向对象语言,
λ具有面向对象基本概念,熟悉基本设计模式
五、讲师简介
曾任某国际研发中心技术负责人,还在编码的架构师。15年以上软件从业经历,现仍然工作在项目一线,知道代码的重要性,重构的重要性,近几年多次重构大型项目,完成了系统的升级和改善.积累了丰富的重构实战经验。作为嘉宾和专家,多次被邀参加各种高级论坛和峰会发表演讲,深受好评。在此期间在多家媒体发表了多篇重构专题文章.
六课程思想:
j)重构是程序员一生都要面对的事情,不仅包括最初的开发阶段,更包括首次发布之后.培养程序员重构的意识
k)软件的质量要么改进,要么腐化.软件重构的首要法则就是通过重构代码提升程序的内在质量.
l)重构成功之关键在于程序员学会关注那些标志代码需要重构的众多的”代码坏味道”
m)重构成功的另一的要素就是应当掌握大量特定重构方法.
n)重构成功的最后要点在于安全的重构策略.
o)重构包括代码重构,设计(模块)重构,架构重构,不同目标采取不同的重构思路
6.好代码和糟糕代码之间的区别
7.劣质代码的代价
8.大师评价整洁代码的标准
a)Robert C Martin
b)Kent Beck`
c)Ward Cunningham
d)Ron Jeffries
e)Grady Booch
f)Dave Thomas
内容二:重构思想
1.重构概述
2.何时重构
3.如何发现哪些地方需要重构
4.如何保证重构的正确
5.如何测试重构
6.通过一个小案例演示重构的基本思想(什么时间重构,如何发现重构点,如
何保证重构的正确性,最后如何验收)
内容三:案例—通过实际项目演示重构
1.介绍项目需求情况,进行设计
2.阅读代码指出代码坏症状
3.通过重构逐步改善代码质量
第二单元如何发现重构点,哪些该需要重构了内容一:重构关键—发现代码的坏味道
1.代码坏味道概述
2.代码坏味道的分类
3.代码坏味道----低级篇(重复的代码、过长的函数、过大的类、过长的参数
列表、发散式变化、分散的修改)
4.代码坏味道----中级篇(伪面向对象的调用、数据泥团、基本类型的误用、
switch-case结构的误用、平行继承体系、过薄的类、只有局部意义的成员变量)
5.代码坏味道----高级篇(过度耦合的消息链、过薄的中间对象、紧耦合类、
相似的类、只有数据的类、滥用类的继承关系)
6.通过案例,让学员寻找代码坏味道
7.可以根据客户现在的项目作为案例进行现场分析,找出相应的代码坏味道
内容二:某项目分析----重点了解现实项目代码的充斥大量坏味道
1.介绍项目需求情况,阅读现有代码指出代码坏症状
2.不看不知道,代码到底有多烂—触目惊心的代码
3.通过重构逐步改善代码质量
4.本案例学习多种重构方式
第三单元重构实践内容一:重构技术1.重构名录
2.介绍常见的重构技术
3.分别通过相关案例展示重构手段
内容二:重构工具
1.重构工具概述
2.使用IDE重构工具进行重构
3.重构工具的使用标准
4.重构工具的使用心得
5.通过案例演示如何通过重构工具完成重构
内容三:重构案例—该案例重点函数和函数调用重构
1.函数的重构
2.函数调用重构
3.函数参数的重构
4.重复代码处理策略
5.通过案例介绍函数的重构
内容四:重构案例—该案例重点复杂条件表达式重构
1.复杂条件表达式重构
2.IF/Else语句的危害
3.Switch语句的危害
4.通过案例介绍如何重构面向过程代码到面向对象
内容五:重构案例—该案例重点学习代码格式和命名
1.代码格式规范
2.代码命名-名副其实
3.很重要,但是总被忽略的基本功
4.通过案例介绍代码格式以及如何使用IDE工具进行定制格式
5.通过案例介绍代码的命名,以及如何重构
内容六:重构案例—该案例重点数据结构重构
1.数据结构重构
2.通过案例介绍如何重构面向过程代码到面向对象
内容七:重构案例—该案例重点对象职责和对象重构
1.过程化思维和面向对象设计
2.对象的重新思考
3.职责驱动的对象设计
4.通过案例介绍如何重构面向过程代码到面向对象
第四单元自动化重构的实践内容一:软件质量和代码质量
1.软件质量概述
2.代码质量的度量
3.Chidamber&Kemerer度量,
4.Depth of Inheritance Tree(DIT)
5.Number of Childre(NOC)