【软件构造】代码优化

代码重构

在不改变软件外部行为的前提下,对齐内部结构进行改变,使之更容易理解。

目的:提升代码质量,易于维护 。

理由

  • 内聚性差
  • 接口层次不一致
  • 数据成员public
  • 成员函数使用过多的其他类特征(弱内聚)
  • 某个类没什么用
  • 耦合性过强
  • 子程序冗长
  • 子程序命名不恰当
  • 参数列表过长
  • 代码重复
  • case语句需要做相同的修改
  • 全局变量
  • 超前设计
    • 不准确
    • 不完备
    • 可能没有用处
    • 复杂性

如何重构

数据级重构

  • 常量代替常量值 e.g. #define PI 3.14
  • 变量名表达更多信息
  • 表达式内嵌化
  • 引入中间变量
  • 多个单一变量代替一个多用途变量
  • 在局部用途中使用局部变量而不是参数
  • 函数参数不做工作变量

语句级重构

用函数代替表达式

子程序重构

  • 简单算法代替复杂算法
  • 精确类型

类重构

接口重构

  • 去除委托关系
  • 封装
  • 不修改删除setter
  • 信息隐藏
  • 合并相似的基类和派生类

系统级重构

  • 为无法控制的数据创建索引
  • 单项的类联系改为双向的类联系

安全的重构

  • 重构步伐小一些
  • 检查修改
  • 增加测试用例

重构的策略

80/20 原则

  • 增加子程序进行重构
  • 添加类
  • 修补缺陷
  • 关注易出错的模块
  • 关注高度复杂的模块

代码调整

对正确代码进行调整的实践,可以使代码运行更为高效。

  • 策略性
  • 技术性

策略性的代码调整

  • 程序需求
  • 程序设计类和子程序的的设计
  • 同操作系统的交互

Pareto法则

少量代码对性能影响很大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值