4006-998-758
3000+课程任你选择
软件重构 - C语言版
研发学院 体系架构设计 产品经理 开课时间:2021-07-04
张云龙

具有多年面向对象软件开发、设计和管理经验,曾在华为和科陆公司担任高级软件工程师、系统工程师、敏捷教练、CMMI设计组组长、事业部首席软件架构师等职务。

拥有国家“系统架构设计师(高级)”和“系统分析师(高级)”两项职业资格认证。拥有SpecDD专家级认证。

主要擅长敏捷实践在各领域的应用,包括代码持续优化与重构,嵌入式C语言架构设计与自动化测试,C#、java语言架构设计与自动化测试。精通多进程、多线程并发系统架构设计,有高负载微服务架构设计经验。精通操作系统原理,有嵌入式操作系统uCOS在多种硬件平台上的移植经验。现在主要从事全系统级架构规划与设计工作。

授课经验丰富,曾为沈阳飞利浦、南京西门子、武汉烽火等知名企业,开展过架构设计相关的内训课程。


查看老师详情
课程内容


课程介绍


1、 以重构视角,剖析多家巨头软件公司的成败兴衰。揭示重构工作的重要性。

2、 与敏捷管理结合,提供重构管理的策略与方式方法。

3、 借助案例,展现重构步骤的最佳实践。

4、 重构的保证:自动化测试。

5、 重构的基础工作:寻找代码的坏味道。

6、 用多个实战训练的方式,由粗到细,讲解架构分层重组、函数重构、函数内部重构3个层次要达成的重构目标,以及相关的重构技巧。


课程收益


1、随着软件越来越大,开发效率越来越低。需求变更需要多处代码修改,并且极易引入Bug。

(1) 管理者不知道如何评判软件内部质量的优劣,缺乏衡量标准的知识和相关工具的运用。

(2) 有经验的老员工,因为厌烦了枯燥的维护工作而离职。

(3) 程序员员希望改变代码腐化的现状,却不知道如何入手。

(4) 项目开发人员缺乏设计原则的知识,开发的代码只是为了完成功能,很少进行架构优化。

(5) 软件无法重用,每一个新项目几乎都是一次重新开始。

(6) 由于代码可读性差,新员工无法接手遗留系统。并且软件越维护越杂乱


课程对象

 

培训面向人群:使用面向对象语言的软件架构师、软件设计师、程序员、测试人员。


学员基础


学习本课程应具备下列基础知识:1) 熟悉C语言;

 

关键词

 

(1) 重构

(2) 代码坏味道

(3) 自动化测试


课程大纲

 

主题

授课内容

第1单元

重构的重要性

与重构管理

该单元内容主要面向公司管理人员。

通过分析巨头软件公司在代码维护上的失败经验,让管理者认识到重构工作的重要性。

并提出相应的管理办法。

1、 开发效率问题

(1) 大部分公司的现状

(2) 消失的巨头公司

(3) 代码是怎么腐化变烂的

(4) 代码是债务,而不是资产

2、 偿还债务的办法――重构与重写

(1) 重构与重新的区别

(2) 为何要选择重构而不是重写?

3、 重构管理

1、 重新认识代码的内部质量

2、 重构面临的管理挑战

重构的推行策略与方式

第2单元

重构对开发人员的意义与重构最佳实践

从第二单元开始,授课内容面向程序员。

通过案例,展示糟糕代码对程序员工作情绪的影响,让程序员产生主动重构的动力。

通过实战训练操作,向程序员说明重构的最佳实践步骤。

并在实战训练的同时,介绍几个重构相关工具的使用方法。

(1) 重构――从程序员自己做起

(1) 从中兴的案例说起

(2) 写出好代码的目的

(3) 代码是写给人读的,而不是写给机器跑的

(4) 让营地比你来时更干净

(2) 重构的最佳实践

(1) 觅取重构点

(2) 重构代码

(3) 自动化单元测试

(3) 重构相关工具

(1) 单元测试工具

(2) 测试覆盖率工具

(3) 打桩工具

(4) 自动化测试工具

第3单元

嗅出代码的坏味道

介绍代码的多种坏味道,为重构点指明方向。

学习使用代码内部质量检测工具,让觅取重构点的工作工具化。

学习使用自动化检测工具,让觅取重构点的工作自动化。

1、 坏味道的分类

(1) 重复的代码

(2) 含糊不清的命名

(3) 方法相关的坏味道

(4) 类相关的坏味道

(5) 散弹式修改

(6) 发散式变化

(7) 不恰当的暴露

(8) 过多的注释

(9) 其他坏味道

2、 “鼻子”麻木了怎么办

代码内部质量检测工具

3、 没时间检测怎么办

(1) 自动化的测试和告警工具

(2) 自动化检测原理

第4单元

模块化程序设计思想

该单元介绍代码分模块、分层的思想,以及一些基本的代码解耦方法。

1、模块化设计的目的

2、模块化程序设计方法

(1) 什么是模块?

(2) 什么是好模块?

(3) 模块接口设计

(4) “C语言”模块怎么组包

3、模块第1大杀手--全局变量

(1) 全局变量的缺点

(2) 减少全局变量使用

(3) 限制全局变量范围

4、模块第2大杀手--循环依赖

(1) 次晨综合症

(2) 分层设计思想

第5单元

 

函数重构技能

该单元主要讲解函数重构。函数的重构最主要的工作是函数抽取。

讲授高质量函数的标准和助手函数的概念。

1、 创建函数的理由

列举多个创建函数的理由,避免程序中产生巨型函数。

2、 高质量函数的三原则

(1) 单一抽象层次原则

(2) 单一职责原则

(3) 短小原则

3、 助手函数

(1) 定义

(2) 好处

 

第6单元

函数内部优化

在上一单元的基础上,本单元主要讲解如何通过优化函数内部的代码,增加代码的可读性、可维护性。

1、 为你的函数取个好名字

(1) 一些基本原则

(2) 检查方法

2、 简化表达式

(1) 引入解释性变量

(2) 尽量少用逻辑非运算符

3、 驯服深层嵌套

(1) 使用卫语句

(2) 用switch-case语句,代替if-els

(3) 表驱动法

4、 消除魔鬼数字

5、 优化变量

(1) 变量命名

(2) 一个变量只做一件事

(3) 控制变量的作用域

(4) 缩短变量的存活时间

(5) 减少控制标记

6、 优化循环

(1) 循环的种类

(2) 循环的选择

(3) 循环的危险性

(4) 循环的重构

7、 缩短参数列表

第7单元

架构师的作用

1、设计者

(1) 切分系统

(2) 设计接口

(3) 选用设计模式

2、教导者

(1) 引导团队

(2) 修正偏离

(3) 加强学习


返回上一级