端海教育集团
全国免费热线:4008699035 微信号:shuhaipeixun
或15921673576(微 信 同 号) Q Q:849322415
首页 课程表 在线聊 报名 讲师 品牌 QQ聊 活动 就业
 

重构-改善既有系统的代码,设计与架构的最佳实践课程


 
   班级规模及环境--热线:4008699035 手机:15921673576( 微信同号)
       坚持小班授课,为保证培训效果,增加互动环节,每期人数限3到5人。
   上课时间和地点
上课地点:【深圳分部】:电影大厦(地铁一号线大剧院站)/深圳大学成教院 【上海】:同济大学(沪西)/新城金郡商务楼(11号线白银路站) 【北京分部】:北京中山学院/福鑫大楼 【南京分部】:金港大厦(和燕路) 【武汉分部】:佳源大厦(高新二路) 【成都分部】:领馆区1号(中和大道) 【沈阳分部】:沈阳理工大学/六宅臻品 【郑州分部】:郑州大学/锦华大厦 【广州分部】:广粮大厦 【西安分部】:协同大厦 【石家庄分部】:河北科技大学/瑞景大厦
最近开课时间(周末班/连续班/晚班):请点击此处咨询在线客服
   实验设备
     ☆资深工程师授课
        
        ☆注重质量 ☆边讲边练

        ☆合格学员免费推荐工作
        ★实验设备请点击这儿查看★
   质量保障

        1、培训过程中,如有部分内容理解不透或消化不好,可免费在以后培训班中重听;
        2、课程完成后,授课老师留给学员手机和Email,保障培训效果,免费提供课后答疑。
        3、培训合格学员可享受免费推荐就业机会。

课程大纲
软件代码的新思维----代码就是设计,代码质量决定软件可维护性
软件可维护性(为什么必须重视软件的可维护性)
代码质量概述
破窗效应
对代码的重新认识---代码就是设计
优秀代码的评价标准
好代码和糟糕代码之间的区别
劣质代码的代价
大师评价整洁代码的标准
Robert C Martin
Kent Beck`
Ward Cunningham
Ron Jeffries
Grady Booch
Dave Thomas

重构思想
重构概述
何时重构
如何发现哪些地方需要重构
如何保证重构的正确
如何测试重构
通过一个小案例演示重构的基本思想(什么时间重构,如何发现重构点,如何保证重构的正确性,最后如何验收)

案例—通过实际项目演示重构
介绍项目需求情况,进行设计
阅读代码指出代码坏症状
通过重构逐步改善代码质量







重构关键—发现代码的坏味道 
代码坏味道概述
代码坏味道的分类
代码坏味道----低级篇(重复的代码、过长的函数、过大的类、过长的参数列表、发散式变化、分散的修改)
代码坏味道----中级篇(伪面向对象的调用、数据泥团、基本类型的误用、switch-case结构的误用、平行继承体系、过薄的类、只有局部意义的成员变量)
代码坏味道----高级篇(过度耦合的消息链、过薄的中间对象、紧耦合类、相似的类、只有数据的类、滥用类的继承关系)
通过案例,让学员寻找代码坏味道
可以根据客户现在的项目作为案例进行现场分析,找出相应的代码坏味道

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




重构技术
重构名录
介绍常见的重构技术
分别通过相关案例展示重构手段

重构工具
重构工具概述
使用IDE重构工具进行重构
重构工具的使用标准
重构工具的使用心得
通过案例演示如何通过重构工具完成重构

重构案例—该案例重点  函数和函数调用重构
函数的重构
函数调用重构
函数参数的重构
重复代码处理策略
通过案例介绍函数的重构

重构案例—该案例重点 复杂条件表达式重构
复杂条件表达式重构
IF/Else语句的危害
Switch语句的危害
通过案例介绍如何重构面向过程代码到面向对象

重构案例—该案例重点学习代码格式和命名
代码格式规范
代码命名-名副其实
很重要,但是总被忽略的基本功
通过案例介绍代码格式以及如何使用IDE工具进行定制格式
通过案例介绍代码的命名,以及如何重构

重构案例—该案例重点 数据结构重构
数据结构重构
通过案例介绍如何重构面向过程代码到面向对象

重构案例—该案例重点 对象职责和对象重构
过程化思维和面向对象设计
对象的重新思考
职责驱动的对象设计
通过案例介绍如何重构面向过程代码到面向对象





软件质量和代码质量
软件质量概述
代码质量的度量
Chidamber & Kemerer度量,
Depth of Inheritance Tree(DIT)
Number of Childre(NOC)
Response for a Class(RFC)
Afferent/Efferent Couplings(CA/CE)
Lack of cohesion in methods(LCOM)
业界其他度量标准
通过分析多个实际项目,分别度量相关是否标准

代码评审和质量抽查
代码评审前期准备
代码评审的代码量
代码评审的检查表
代码评审的总结与学习
通过案例分析如何做好代码评审




代码静态分析工具
代码静态分析工具概述
以Java语言代码静态分析工具为例介绍
CheckStyle:用于编码标准 
PMD 的 CPD:帮助发现代码重复 
Coverlipse:测量代码覆盖率 
JDepend:提供依赖项分析 
Metric:有效地查出复杂度
其他语言相关代码静态分析工具
通过案例演示工具在项目之中的应用

持续集成
持续集成概述
持续集成的要点和原则 
构建策略和最佳实践 
持续集成对代码分析的支持
通过案例演示如何利用持续集成完成代码检查和代码分析




什么是好的设计以及如何预先设计实现 
什么是好的设计和衡量的手段
可扩展性(Extensibility)容易添加新的功能. 结合案例,通过那些手段如何实现该目标
灵活性(Flexibility)代码修改平稳地发生. 结合案例,通过那些手段如何实现该目标
可插入性(Pluggability)容易将一个类抽出去,同时将另一个有同样接口的类加入进来. 结合案例,通过那些手段如何实现该目标
软件的变化分析---发现变化/封装变化/隔离变化
分析真实项目,如何预先设计,给我们哪些启示,我们可以学习到什么

重构与设计----敏捷设计思想(演化式设计或者反思性设计) 
重构与设计的思想---根据代码坏味道改善设计
软件需求不可预测性----设计师不可能进行预测式设计
软件设计的重构
软件演化式设计---敏捷的设计思想
分析某电信项目,如何设计重构,给我们哪些启示,我们可以学习到什么

通过代码指标进行设计重构 
代码指标和可视化有助于识别代码的重要部分,从而识别设计坏味道,进行重构设计
相关代码指标(HIT 继承树的高度/NOP 包的数量/NOC 类的数量/NOM 方法的数量/LOC 代码行数/CYCLO 圈复杂度/CALL 每个方法的调用数)
分析案例主要讨论两个指标,圈复杂度(cyclomatic complexity) 和传入耦合(afferent coupling), 介绍显示和理解这两个指标的一些工具,以及如何通过组合指标帮助发现设计特征。






重构到模式
软件设计的基本原则
设计模式概述
设计模式的本质论
设计模式如何适应变化和封装
重构到模式的思路

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

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

案例---重点介绍重构代码过长/过大的类/方法和对应模式
转移聚集操作到Vistor
以Strategy取代条件逻辑
以Command取代条件调度程序
转移聚集操作到Collecting Parameter
重点学习案例的重构到模式的过程

案例---重点介绍条件逻辑过度复杂和对应模式
以Strategy取代条件逻辑
以State取代状态改变条件语句
转移装饰功能到Decorator
引入Null Object
以Command替换条件调度程序
转移聚集操作到Visitor 
重点学习案例的重构到模式的过程
大型
项目
重构
案例
分析
架构重构
软件架构概述
遗留系统的软件架构恢复
软件架构的重构时机
软件架构的重构步骤
架构坏味道
架构重构策略

案例分析—某web网站架构重构
项目背景以及相关需求
软件架构的演进与重构过程
质量属性对软件架构的驱动
架构的可扩展性架构
缓存技术在架构之中的应用
Web层的架构策略
中间层的架构和集群策略
大型并发系统Session的复制和容错架构策略
数据的架构
软件架构的重构策略

案例分析—某电信项目架构重构
介绍项目需求情况,进行设计
通过重构逐步实现设计的可维护, 可重用
应用管道与过滤器/元数据/微内核等架构模式
应用AOP架构思想
应用设计模式(Command/ Observer/Proxy/Chain of Responsibility ) 
通过案例学习架构的重构策略和步骤



 

android开发板
linux_android开发板
fpga图像处理
端海培训实验设备
fpga培训班
 
本课程部分实验室实景
端海实验室
实验室
端海培训优势
 
  备案号:备案号:沪ICP备08026168号-1 .(2014年7月11)...................
友情链接:Cadence培训 ICEPAK培训 EMC培训 电磁兼容培训 sas容培训 罗克韦尔PLC培训 欧姆龙PLC培训 PLC培训 三菱PLC培训 西门子PLC培训 dcs培训 横河dcs培训 艾默生培训 robot CAD培训 eplan培训 dcs培训 电路板设计培训 浙大dcs培训 PCB设计培训 adams培训 fluent培训系列课程 培训机构课程短期培训系列课程培训机构 长期课程列表实践课程高级课程学校培训机构周末班培训 南京 NS3培训 OpenGL培训 FPGA培训 PCIE培训 MTK培训 Cortex训 Arduino培训 单片机培训 EMC培训 信号完整性培训 电源设计培训 电机控制培训 LabVIEW培训 OPENCV培训 集成电路培训 UVM验证培训 VxWorks培训 CST培训 PLC培训 Python培训 ANSYS培训 VB语言培训 HFSS培训 SAS培训 Ansys培训 短期培训系列课程培训机构 长期课程列表实践课程高级课程学校培训机构周末班 端海 教育 企业 学院 培训课程 系列班 长期课程列表实践课程高级课程学校培训机构周末班 短期培训系列课程培训机构 端海教育企业学院培训课程 系列班