丁哥看软件(九):重构
【摘要】 重构是为了解决复杂度的问题。
现在说一下重构。为什么我们需要对代码和设计进行重构?主要是因为我们发现了更好的做法。所谓更好,包括效率更高,更容易维护等等好处。
简单的代码重构我们都比较熟悉,比如说你通过工具就可以做一些整理。
一般来说,重构是为了解决复杂度的问题。关于复杂度的问题,我们在上期中已经提到了。
现在比较头疼的一个话题就是对老产品的重构,一些老产品涉及到上千万行,上亿行的代码。
对于这样的庞然大物,最好的办法就是分而治之。首先要确定系统的功能逻辑点,针对这些逻辑点,要编排好对应的检测点,也就是说等我们完成了重构以后,我们得确保我们的重构是没有问题的,这些检测点就是做这个的,我们可以理解成集成类的测试。
这些集成类的测试一定要确保可以在当前未重构之前的系统上正常运行。
有了这个设施以后,我们就可以开展我们的重构工作。重构的方法有很多,比如采用比较好的工具,函数和变量的命名改变,调用方式的改变等等。这些是在现有代码的基础上进行的重构。这里我们重点说一下重写的方式来实现重构。所谓重写呢,就是另外开辟一套代码底座。甚至可以选用不同的编程语言。
这种情况下重构首先要重用已有的业务逻辑,实现针对业务逻辑集成测试100%的通过率。
具体不管采用哪种方式都要一个模块一个模块的进行推进。验证完成一个是一个,千万不能急于求成,试图一次性的把某些问题搞定。如果出现很多次失败,有可能会消磨掉你的自信心。所以一定要一点一点的往前推进,始终是在进步当中。采用了这种方式以后,不管当前的系统有多么的庞大,你只要坚持做下去,就一定能够把重构工作彻底完成。
上面我们是假定系统在已经完成的情况下进行的重构,其实重构可以贯穿于软件开发的始终。软件开发的首要目标是实现业务逻辑,能够解决客户的问题。这个目标实现以后,我们就要追求代码的干净度,复杂度能够降到最小,当前的技术能够用到最先进。
所以只要有机会,我们都应该对代码和设计进行重构。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)