搬移特性

1. 搬移函数

如果一个函数频繁引用其他上下文的元素,而对自身上下文的元素却很少调用,说明它属于另一个上下文。

对于与方法同名的变量,想想它是否有存在的必要。

2. 搬移字段

数据结构是一个健壮程序的根基,坏的数据结构本身会隐藏程序的真实意图。把字段放到适合的类中,或是为相互关联的字段创建一个类。

3. 搬移语句到函数

如果多个方法调用a方法之前,都要写一样的语句,如判断语句,那么就把这个判断语句放在a方法中。

4. 搬移语句到调用者

函数的边界发生偏移的一个征兆是,以往在多个地方共用的行为,如今需要在某些调用点面前表现出不同的行为,则把表现不同的行为从函数搬移到调用者中。

5. 以函数调用取代内联代码

用函数将相关行为打包起来,并取一个准确的名字,这有利于理解代码

6. 移动语句

让存在关联的东西一起出现,可以使代码更容易理解。比如在使用局部变量或成员变量时声明它,而不要一起在顶部声明赋值。

7.拆分循环

让一个循环只做一件事,虽然循环是一样的,但是拆分成多个循环易于理解,这样看上去好像牺牲了很多计算性能,但是还是理解比较重要。拆分循环之后,往往会给每个循环提炼一个方法。

程序的性能问题往往只会被1%的代码影响,其他的循环看上去似乎非常影响性能,但其实并没有你想象地那么严重。而且拆分代码提高代码的可读性,更利于性能调优,如果真的是因为循环影响的性能,也可以通过之后的调优优化程序。

8.以管道取代循环

管道使用一组运算来描述集合的迭代过程,运算的参数及返回值都是一个集合,最常见的运算是map与filter,filter是将参数筛选成返回值的判断语句,map则是作用于参数上的一个转换过程。比如:

list names = input.filter(i=>i.job==="programmer").map(i=>i.name);

lambda语句(相当于一个简单的匿名函数):i=>(表达式),这里的=>左边是匿名函数的参数,右边是表达式。

9.移除死代码

如果一段代码不再被调用,就删除它,即使你觉得以后可能还会调用,那也可以从版本控制系统中把它找出来。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值