重构tips

  1. 永远不要让函数使用全局变量,或者是非自身区域的变量。
    要么使用嵌套函数声明,很多语言不支持。要么就干脆不要使用全局变量。
  2. 尽量不要让一个函数超过6行
  3. 函数名长度并不重要,重要的是是否能够表达其用途。
  4. 关于长函数与短函数的性能问题
    在《编程珠玑》中,大量的篇幅在介绍for循环、函数的寻址会造成1/3性能的开销,并建议在性能要求很高的程序中应该使用循环展开、line的技巧,或是自动化编译器优化来提升性能,然而在《重构》中同时也有一段话,

如今“由于函数调用影响性能的情况已经非常罕见了,短函数常常能让编译器的优化功能运转的更良好,因为短函数可以更容易被缓存。所以应该始终遵循性能优化的一般指导方针,不用过早担心性能问题。

  1. 在函数参数的设计中,一定要先考虑好函数是否修改参数,传参是按值还是按址。
  2. 重构要小步前进,不断测试,慢即是快,因为这样不需要调试,调试占用的时间远超过这些。
  3. 对内敛变量和提炼变量的抉择,是根据这个变量名是否比表达式更具表现力,让人第一眼看到就明白用途。
  4. 对于变量的性质 能加const就加,尤其是全局变量必须加。
  5. 为什么要封装数据?
    如果要修改数据的类型或者是引用,那么就如同修改全局变量一样,同时要修改所有调用该数据的函数或者方法,有些是跨模块,有些是已发布,修改会困难重重。而如果数据只能通过函数来访问,比如c++的 private字段,那么你只需要更新本模块的数据和对应的访问方法即可
    对于可变数据,只要它的作用域超出单个函数,就应该将其封装起来,比如class中的字段都应该进行封装。
  6. 对于python这种没有const关键子的语言,进行数据可见性封装的办法之一是,get方法返回值是一个副本而不是一个引用。
  7. 变量的命名原则,要加类型后缀,比如 age_int 明显就是一个年龄变量 类型为整形,在进行debug的时候,调试错误比较明显,而后续引用也比较清晰。如果作用域比较广泛,就给他一个体面的封装。常量要用全大写字母来命名,对于没有const的语言,要秉承一个原则,全局变量都是常量,而且不要去修改。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值