软件重构的指导思想

### 什么是好软件
好理解、易维护、高效(含优先级)
### 怎么构建”好理解“的软件
1、选择合适的数据结构,是好软件的开始;(把要处理的数据,具象化,抽象成一个具体的可描述物件;这样就不会把不相关的揉合到一块)
2、画依赖图、时序图:养成先画图的习惯;这样你一开始的目录结构和调用顺序就不会乱。
3、预留变化:有一些变化你开始就能预期到的,不要懒,别写成死代码;
### 软件好的表现
你看完《重构》这种大部头,还是不知道如何下手;以下是简单精准的手术刀操作:
~(参考HW内网某高级架构师总结的年度精品帖)~
1、<font color=red>**文件功能是否清晰**</font>;~检视文件包含的必要性,头文件只放对外的接口声明;面向接口编程的基石~
2、<font color=red>**函数功能是否单一**</font>;~函数命名古怪、冗长、描述不清;再多想一想~
3、<font color=red>**在同一个逻辑层次表述**</font>;~这条是抽象、解耦的基石,详见[代码逻辑层次](http://47.101.38.8:8090/archives/logic-level))~


### 其他不好的味道:
<font color=blue>反向依赖、重复代码、过长函数、过大的类、过多的注释、随处可见的extern</font>;

针对一些历史代码,如何去做重构?

1、消除所有的extern (头文件中函数对外声明是不需要extern关键字的)

2、全局变量消除 (如果有少量必须要全局保存的数据,理论上应该是在mian函数等地方传递,或者作为环境资源提供类似linux全局函数)

3、局部算法优化:看看哪些级联的if和switch可以用for循环的方式实现; (这句话的另外一层一次就是把特殊处理共性化,抽象出更高的逻辑层次来处理差异事物,复杂问题简单化)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值