重构原则

1.1  何谓重构

重构(名词):对软件内部结构的一种调整,目的是在不改变“软件可察行为”的前提下,提高其可理解性,降低修改成本。

重构(动词):使用一系列的重构准则,在不改变“软件可察行为”的前提下,调整其结构。

1、  重构的目的是使软件更容易被理解和修改。

2、  重构不会改变软件“可察行为”。

1.2  为何重构

1、  改进软件设计:经常性的重构能够使代码保持其本来的设计思路。并且,消除代码重复。

2、  是软件更容易被理解:把理解嵌入到代码中,而不是嵌入到大脑中。

3、  帮助你找到臭虫(BUG ): Kent Beck :我不是伟大的程序员,我只是一个有着一些优秀习惯的好程序员而已。

4、  帮助你提高编程速度:良好的软件设计是快速软件开发的根本。

1.3  何时重构

你不应该为重构而重构,你之所以重构,是因为你想做别的事情,而重构可以帮助你把那些事情做好。

三次法则:

“第一次做某件事时只管去做;第二次做类似的事会产生反感,当无论如何还是做了;第三次再做类似的事,你就该考虑重构。——事不过三,三则重构。”

重构时间

1、  添加功能时重构。1 )为了方便理解代码。 2 )为了更快的添加新功能。

2、  修补错误时重构:使代码足够清晰,以使一目了然便发现bug

3、  复审代码时一并重构。

为什么重构有用

——Kent Beck

程序的两面价值:今天为你做什么和明天为你做什么。

希望程序:1 )容易阅读。 2 )所有逻辑都只在唯一地点指定。 3 )新的改动不为危机现有行为。 4 )尽可能简单表达条件逻辑。

这是个性质是我们能够保持高速开发,从而增加程序的价值。

1.4  怎么对经理说

1.5  重构的难题

1、  数据库

2、  修改接口:

3、  难以通过重构手段完成的设计改动

4、  何时不该重构:产品无法正常工作;项目没有时间,即将发布。

1.6  重构与设计

重构的一项特别任务:与设计互补。原因是,你可以不必把“预先设计”当作一个完美的、肯定可以100% 解决问题的银弹,而只要此解决方案足够合理就可以了。你可以在实施此解决方案的过程中,随着对问题的理解的深入,不断的通过重构来优化设计方案。

重构的出现使软件设计朝向简化前进了一大步。未出现重构之前,我们的设计方案经常要应对软件声明周期中各种各样的变更,要求我们的方案要足够的灵活,足够的强固。这样导致的结果是“过度设计”,而使设计方案过于复杂而难于理解和维护。更失败的情况是,我们发现很多灵活性都毫无必要。

重构的出现可以改变设计的思路:如果把一个简单的设计方案重构成一个灵活的设计方案非常简单,那我们就只需要实现简单的方案就可以了。

重构可以带来简单的设计,同时又不损失灵活性。至于灵活而复杂的设计,你多数情况下并不需要他。

这个地方,和敏捷开发的思路十分的相像。同样,敏捷开发的核心中也存在:自动化测试和重构,反对过度设计。

至于系统架构层次的重构,因为重构的成本相对较高,所以预先设计的程度要相对较深。

哪怕你完全了解你的系统,也请实际测量它的性能,不要臆测。臆测会让你学到一些东西,但十有八九都是错的。

1.7  重构与性能

重构虽然会使系统运行变慢,但是却使优化性能变得容易。

优化程序的方法:前期通过重构构造出设计良好的程序,后期优化阶段找出程序的瓶颈,并进行优化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值