重构改善既有代码的设计
“重构”这个概念来自Smalltalk圈子,没多久就进入了其他语言阵营之中。由于重构是框架开发中不可缺少的一部分,所以当框架开发人员讨论自己的工作时,这个术语就诞生了。当他们精炼自己的类继承体系时,当他们叫喊自己可以拿掉多少多少行代码时,重构的概念慢慢浮出水面。框架设计者知道,这东西不可能一开始就完全正确,它将随着设计者的经验成长而进化;他们也知道,代码被阅读和被修改的次数远远多于它被编写的次数。保持代码易读、易修改的关键,就是重构--对框架而言如此,对一般软件也如此。
好极了,还有什么问题吗?问题很显然:重构具有风险。它必须修改运作中的程序,这可能引入一些不易察觉的错误。如果重构方式不恰当,可能毁掉你数天甚至数星期的成果。如果重构时不做好准备,不遵守规则,风险就更大。你挖掘自己的代码,很快发现了一些值得修改的地方,于是你挖得更深。挖得愈深,找到的重构机会就越多,于是你的修改也愈多……最后你给自己挖了个大坑,却爬不出去了。为了避免自掘坟墓,重构必须系统化进行。我在《设计模式》书中和另外三位作者曾经提过:设计模式为重构提供了目标。然而“确定目标”只是问题的一部分而已,改造程序以达到目标,是另一个难题。
Martin Fowler和本书另几位作者清楚揭示了重构过程,他们为面向对象软件开发所做的贡献难以衡量。本书解释了重构的原理和最佳实践,并指出何时何地你应该开始挖掘你的代码以求改善。本书的核心是一系列完整的重构方法,其中每一项都介绍一种经过实践检验的代码变换手法的动机和技术。某些项目如ExtractMethod和Move Field看起来可能很浅显,但不要掉以轻心,因为理解这类技术正是有条不紊地进行重构的关键。本书所提的这些重构手法将帮助你一次一小步地修改你的代码,这就减少了过程中的风险。很快你就会把这些重构手法和其名称加入自己的开发词典中,并且朗朗上口。
-
性能影响的关键路径以及优化策略
模块一的《06 | 哪些因素会影响 Node.js 性能?》,我们详细讲解了影响到 Node.js 性能的一些因素,但是在实际开发过程中,我们应该... 1046 0 24-05-24 -
DeepSeek小白使用指南,99% 的人都不知道的使用技巧
技巧一:“按下R1”一定要按下这个深度思考(R1),不按下还是使用的V3,和其他各种大模型得出的结论差异化不大,现在大家疯狂的是这个R1技... 707 0 25-04-30 -
100+推荐阅读英文博客:自我提升,时间管理,成功激励
这里收集了很多优秀的英文博客,内容包括自我提升,时间管理,成功激励,博客写作,学习教育五大类。具有一定英语能力的人可以多看看这些博... 1129 0 25-03-03 -
田间小站 - 高质量英语学习
田间小站是一个值得你每天一看的高质量英语学习网站,它通过多种形式的学习教程和学习资料,帮助你提高英语口语,词汇,写作,阅读。 811 0 21-12-07 -
英语八级视听美文20篇视频
1.Tears of Joy.exe10.How Do I Love Thee.exe11.Being in Love.exe12.Unrequited Love.exe13.Napoleon to Josephine.exe14.The... 761 0 24-08-20 -
MC如何淘汰冷key和失效key
淘汰策略Mc 作为缓存组件,意味着 Mc 中只能存储访问最频繁的热数据,一旦存入数据超过内存限制,就需要对 Mc 中的冷 key 进行淘汰... 1037 0 24-05-24 -
V2EX社区小程序
WeApp-V2ex:构建高效社交应用的开源框架是一个基于微信小程序开发的开源框架,旨在帮助开发者快速、灵活地构建类似V2ex的社区应用程序。该... 884 0 24-09-19 -
纯静态的一个网址导航页面
1111 0 24-07-03
发表我的评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~