软件重构最佳实践

上传人:F****n 文档编号:105162685 上传时间:2019-10-11 格式:DOC 页数:8 大小:54.50KB
返回 下载 相关 举报
软件重构最佳实践_第1页
第1页 / 共8页
软件重构最佳实践_第2页
第2页 / 共8页
软件重构最佳实践_第3页
第3页 / 共8页
软件重构最佳实践_第4页
第4页 / 共8页
软件重构最佳实践_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《软件重构最佳实践》由会员分享,可在线阅读,更多相关《软件重构最佳实践(8页珍藏版)》请在金锄头文库上搜索。

1、王家林:Android架构师、高级工程师、咨询顾问、培训专家通晓Android、HTML5、Hadoop,迷恋英语播音和健美致力于Android和HTML5软、硬、云整合,精通Android安全。国内最早(2007年)从事于Android系统移植、软硬整合、框架修改、应用程序软件开发以及Android系统测试和应用软件测试的技术专家和技术创业人员之一。HTML5技术领域的最早实践者(2009年)之一,成功为多个机构实现多款自定义HTML5浏览器,参与某知名的HTML5浏览器研发;Tel: Email:重构培训的重要性 软件质量,不但依赖于架构,设计以及项目管理,而且与代码质量紧密相关.这一点,

2、无论你使用什么开发技术,都不得不承认. 什么是好的代码?可以工作的,性能良好,不出bug的代码,就是好的代码吗?世界大师Bob大叔认为,软件代码应该基本3个职责: 第1职责:运行起来所实现的功能,这是代码得以存在的原因. 第2职责:它要应对变化,因为几乎软件需求都有变化,因此代码应该保证将来的修改尽可能的简单. 第3职责:要和阅读它的人进行沟通,对模块不熟悉的人员应该能够比较容易理解. 因此所谓好的代码就是,除了满足所有功能需求以外,还应该更好的支持易修改和易扩展,同时应该清晰准确地传递作者的思想.因此代码质量与整洁度成正比,干净的代码,不仅在质量上较为可靠,也为后期维护,升级奠定了良好的基础

3、. 该课程给出了一系列有效的重构实践,均来自现实项目的正,反两面的范例.只要遵循这些实践,就能编写出干净的代码,从而有效提升代码质量. 这是实践是软件公司最佳实践,也是软件公司难以大幅度提高生产力的关键所在。然而很多企业的技术高管都在抱怨自己的技术人员: 1、编程序效率太差,一个简单的功能,很久时间才能完成开发实现; 2、不动脑,经常犯很多弱智的错误; 3、代码质量很差,程序结构不合理; 4、写了78年程序仍然没有程序的味道,而且还养成了许多坏的编程习惯; 5、基本功不扎实,学习了面向对象和设计模式,根本不会使用;6、难于适应需求变更,每次增加新功能都是浪费大量时间。如何提高代码质量,提高程序

4、员的生产力?本课程正是为此而生。课程特色:本课程注重实战,采用案例贯穿方式完成实践,收集了大量的真实案例,针对项目过程中技术人员常犯的错误进行了汇总,研讨,并最终形成培训教程。本次培训从程序员的编程思维开始讲解,通过大量的真实案例,贯穿了设计、编码、重构、单元测试,持续集成等整个软件生命周期过程,详细地介绍了重构需要注意的要点以及难点,是重构最佳实践的心血结晶。时间 內 容 备注 第一天 第1个主题:重构概述和软件代码新视角内容一:软件代码的新思维-代码就是设计,代码质量决定软件可维护性1.软件可维护性(为什么必须重视软件的可维护性)2.代码质量概述3.破窗效应4.对代码的重新认识-代码就是设

5、计5.优秀代码的评价标准6.好代码和糟糕代码之间的区别7.劣质代码的代价8.大师评价整洁代码的标准a)Robert C Martinb)Kent Beckc)Ward Cunninghamd)Ron Jeffriese)Grady Boochf)Dave Thomas内容二:重构思想1.重构概述2.何时重构3.如何发现哪些地方需要重构4.如何保证重构的正确5.如何测试重构6.通过一个小案例演示重构的基本思想(什么时间重构,如何发现重构点,如何保证重构的正确性,最后如何验收)内容三:案例通过实际项目演示重构1.介绍项目需求情况,进行设计2.阅读代码指出代码坏症状3.通过重构逐步改善代码质量第2个

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

7、重点了解现实项目代码的充斥大量坏味道1.介绍项目需求情况,阅读现有代码指出代码坏症状2.不看不知道,代码到底有多烂触目惊心的代码3.通过重构逐步改善代码质量4.本案例学习多种重构方式第3个主题:重构技术-怎样对先有代码重构内容一:重构技术1.重构名录2.介绍常见的重构技术3.分别通过相关案例展示重构手段内容二:重构工具1.重构工具概述2.使用IDE重构工具进行重构3.重构工具的使用标准4.重构工具的使用心得5.通过案例演示如何通过重构工具完成重构内容三:重构案例该案例重点函数和函数调用重构1.函数的重构2.函数调用重构3.函数参数的重构4.重复代码处理策略5.通过案例介绍函数的重构内容四:重构

8、案例该案例重点复杂条件表达式重构1.复杂条件表达式重构2.IF/Else语句的危害3.Switch语句的危害4.通过案例介绍如何重构面向过程代码到面向对象内容五:重构案例该案例重点学习代码格式和命名1.代码格式规范2.代码命名-名副其实3.很重要,但是总被忽略的基本功4.通过案例介绍代码格式以及如何使用IDE工具进行定制格式5.通过案例介绍代码的命名,以及如何重构内容六:重构案例该案例重点数据结构重构1.数据结构重构2.通过案例介绍如何重构面向过程代码到面向对象内容七:重构案例该案例重点对象职责和对象重构1.过程化思维和面向对象设计2.对象的重新思考3.职责驱动的对象设计4.通过案例介绍如何重

9、构面向过程代码到面向对象第4主题:代码质量度量-不度量就无法考核,通过工具进行度量内容一:代码质量度量1.代码质量的度量2.Chidamber & Kemerer度量,3.Depth of Inheritance Tree(DIT)4.Number of Childre(NOC)5.Response for a Class(RFC)6.Afferent/Efferent Couplings(CA/CE)7.Lack of cohesion in methods(LCOM)8.业界其他度量标准9.通过分析多个实际项目,分别度量相关是否标准内容二:代码评审1.代码评审前期准备2.代码评审的代码量3

10、.代码评审的检查表4.代码评审的总结与学习5.通过案例分析如何做好代码评审内容三:单元测试1.单元测试概述2.单元测试的范围3.哪些代码需要单元测试4.单元测试的时机5.单元测试设计原则6.通过案例学习单元测试的应用时间 內 容 备注 第二天 第5主题:代码分析工具与持续集成内容一:代码静态分析工具1.代码静态分析工具概述2.以Java语言代码静态分析工具为例介绍3.CheckStyle:用于编码标准4.PMD的CPD:帮助发现代码重复5.Coverlipse:测量代码覆盖率6.JDepend:提供依赖项分析7.Metric:有效地查出复杂度8.其他语言相关代码静态分析工具9.通过案例演示工具

11、在项目之中的应用内容二:持续集成1.持续集成概述2.持续集成的要点和原则3.构建策略和最佳实践4.持续集成对代码分析的支持5.通过案例演示如何利用持续集成完成代码检查和代码分析第6个主题: 设计重构-敏捷设计核心思想(演化式设计)内容一:什么是好的设计以及如何预先设计实现1.什么是好的设计和衡量的手段2.可扩展性(Extensibility)容易添加新的功能.结合案例,通过那些手段如何实现该目标3.灵活性(Flexibility)代码修改平稳地发生.结合案例,通过那些手段如何实现该目标4.可插入性(Pluggability)容易将一个类抽出去,同时将另一个有同样接口的类加入进来.结合案例,通过

12、那些手段如何实现该目标5.软件的变化分析-发现变化/封装变化/隔离变化6.分析真实项目,如何预先设计,给我们哪些启示,我们可以学习到什么内容二:重构与设计-敏捷设计思想(演化式设计或者反思性设计)1.重构与设计的思想-根据代码坏味道改善设计2.软件需求不可预测性-设计师不可能进行预测式设计3.软件设计的重构4.软件演化式设计-敏捷的设计思想5.分析某电信项目,如何设计重构,给我们哪些启示,我们可以学习到什么内容三:通过代码指标进行设计重构1.代码指标和可视化有助于识别代码的重要部分,从而识别设计坏味道,进行重构设计2.相关代码指标(HIT继承树的高度/NOP包的数量/NOC类的数量/NOM方法的数量/LOC代码行数/CYCLO圈复杂度/CALL每个方法的调用数)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号