A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

何谓重构

目的在于不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。重构可能会在软件内部做修改,但是对软件的外部行为造成很小改变,或者不造成改变。与之相比的是性能优化。

为何重构

程序的设计会逐渐腐败,当人们只为了短期目的,或者未在完全理解代码整体设计之前就贸然修改代码,程序会逐渐失去自己的结构,程序猿会越来越难通过阅读代码而理解原来的设计。
代码结构的流失是累积的,所以应该进行经常性的重构以保持代码的形态。

何时重构

事不过三,三则重构。

添加功能时重构
修补错误时重构
复审代码时重构
重构的难题

数据库
数据库结构难以修改的原因为绝大多数商用程序都与它们背后的数据库紧密的耦合在一起,还有就是数据迁移Migration,就算非常小心的将系统分层,将数据库结构和对象模型间的依赖降至最低,但数据库结构的改变还是让人不得不迁移所有的数据。

修改接口
许多重构的手法都会修改接口,但是对于已经发布的接口,需要维护新旧两个接口,有的做法是让旧的接口去调用新的接口,并且标记弃用的注解。
虽然保留旧的接口可行,但是很烦人,需要构造并维护一些额外的函数。还好我们有另一个选择,不要发布接口,这可能意味着你改变代码所有权方面的概念,让每个人可以修改别人的代码,以适应接口的改动,以结对编程的方式完成这一切是一个很好的主意。
还有种手法是通过throws抛出异常,在此不做赘述。

何时不该重构
例如当重构代码的工作量大于重新写一个来的简单的时候。

重构与设计

重构与设计彼此互补。
事先做好设计可以节省返工的高额成本,有了重构,你仍然做预先设计,但是不一定找到绝对正确的解决方案,只需要一个足够合理的就行。

重构与性能

关于重构,它对程序性能将造成怎样的影响呢?
为了让软件易于理解,有时候可能会做出使程序变慢的修改。但重构也许会使得软件运行变慢,但是它能够使得软件的性能优化变得更容易。
---------------------
【转载,仅作分享,侵删】
作者:No_Game_No_Life_
原文:https://blog.csdn.net/No_Game_No_Life_/article/details/86066639


1 个回复

倒序浏览
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马