重构软件设计

作为一个程序员在写了很多年的程序代码,回过头来看之前写的代码,我相信很大一部分人会说:“我靠,写的这么烂,这是我写的吗?当时是不是脑子进水了,怎么会这样写代码?”

自己肯定会对着自己的代码暗暗发笑。随着时间的增长,随着自己写代码的数量的增多,自己的编程经验也随着增多,对各种设计模式、各种设计原则的应用与理解;对面向对象技术深入理解,自己写的代码的质量也越来越高,可复用和可扩展性也越来越灵活。

在编写和设计项目过程中,不可能一次就把项目设计的很完善,随着项目的需求变化,代码也随着发生相应的变化。也许在一个类中添加一个变量或者添加一个函数就能很好的解决一个大问题;也许添加几个类才能很好的解决一个小问题。在解决大问题和小问题之间的取舍就体现了设计的重要性,一个良好的架构设计可以很好的扩展多种功能,解决多种问题。

如果一开始项目设计的不是很好或者开始的需求不明确,在后期需求不断增加和调试bug过程中就需要对代码进行修改调整,也会对代码进行重构。

所谓重构:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。

本质上说,重构就是代码写好之后改进它的设计。

这种说法与平时的项目开发要求有些冲突,应该是先设计然后在编码:首先要有一个全局的设计,然后在开始编码。凡事就怕但是,但是随着时间的流逝,人们不断的修改代码,不断添加添加新的需求,于是根据原先设计的系统,整体结构就会变弱。代码质量也慢慢沉沦,然后就从严谨的编码工程变成了的东拼西凑随性行为。

然后重构就出现了…

重构就是把一个堆混乱的代码,加工成良好的代码,就是一种“化腐朽为神奇”方法。

你会发现所谓的而设计不再是一切动作的前提,在系统的构筑过程中,可以逐步的让一个系统在开发过程中保持良好的设计。

重构是一个一致持续的过程,是一个逐步的过程,是一个不断精进的过程。重构有各种各样的方法技巧,也许只是移动一个变量,移动一个函数,添加一个类等。但是这不仅仅是代码的移动更是设计思想的改变。

为什么要重构代码?

  1. 重构可以改进软件设计。当人们只为短期目的,或者在完全理解整体设计之前就贸然修改代码,或者程序员本身的技能不过硬,修改之后的代码就逐渐失去了原来的结构,后来的程序员越来越难以通过阅读代码来理解原来的设计。重构就像是整理代码,把清晰的代码结构梳理出来,保持代码原来的结构。同样重构可以消除重复的代码,重复的代码之所以出现是因为所处的环境不同,还有程序员懒惰的原因。消除重复的代码,这是代码优秀的设计。

  2. 重构软件可以是代码更容易理解。软件设计语言其实就是计算可以看懂的一种语言,你编写的代码其实在告诉计算机该如何工作。当时编写的代码很容易明白,但是几个月后,也许连自己也不明白当时为什么这样写,甚至不知道这写代码什么意思。重构代码之后,良好的代码设计,形同良好的代码注释一样,一眼就可以看出代码执行的意图。有利于很快进入工作状态。

  3. 重构可以帮忙找到BUG。在代码重构的过程中,有利于发现代码中隐藏的问题。特别是设计方面的缺陷,进而可以修正过来。

  4. 重构可以提高编程速度。重构之后的代码结构清楚,可以很快的在重构之后的基础上添加新的功能。良好的设计师维持软件开发速度的根本。重构可以阻值软件的腐烂,提高软件的质量。

  5. 重构可以提高自己的编程思想。重构的过程也是一个重新思考的过程,思考如何重构才能让代码更加优美、更加严谨、更加具有可读性和可扩展性。“百闻不如一见,百见不如一练”经过自己思考后修改的代码,自己的印象会更加深刻。不断的重构,不断的思考。自己的编程思想在这个过程中同样也会得到提高。

什么时候重构?

  1. 添加新功能时重构。这也是重构最常见的一种场景,新的需求引起新的功能。在添加新的功能过程中,发现原来的代码结构中,很难找到核实的位置通过添加代码来实现。在理解代码之后重构是一个很流畅的过程,一旦完成,新的功能也就很快的添加上去。
  2. 调试BUG时重构。程序运行过程中出现BUG,在调试过程中,发现代码的结构逻辑不是很清楚,从而造成这个问题的出现,重构之后代码的结构逻辑变清楚了,之前的BUG也就消失了。
  3. 审核代码是重构。提交代码之后,由项目中比较资深的程序员审核代码,可以很快指出代码中不合理的部分,提出比较合理的解决方案。这样也有助于经验欠缺的程序员提高编程水平。
  4. 随时重构。只要这个项目在进行中,只要项目的编码在进行中,就要经常性的回头查看代码的设计是否还符合当前的需求,如果不再符合该如何重构这部分代码。这样有助于保持代码的活力,一直保持代码的整体架构在一个比较良好的设计。

以上!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wb175208

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值