欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

重构--代码如何进行重构

程序员文章站 2022-07-09 19:30:25
这一篇旨在让自己认识重构的重要性,在项目开发过程中要培养自己的重构思维。能在项目迭代过程中,让code review成为开发的一部分,以提高自己的代码能力。什么情况下重构?到底重构什么?又该如何重构?“重构”这个词对于大部分工程师来说可能不陌生,但真正进行代码重构的人不多,而持续重构作为开发的一部分的人少之又少。这是什么原因呢1、重构代码对一个工程师能力的要求,要比单纯写代码高的多。重构需要你能洞察出代码存在的坏味道或者设计上的不足,并且能合理、熟练地利用设计思想、原则、模式.....

这一篇旨在让自己认识重构的重要性,在项目开发过程中要培养自己的重构思维。能在项目迭代过程中,让code review成为开发的一部分,以提高自己的代码能力。

 

什么情况下重构?

到底重构什么?

又该如何重构?

 

“重构”这个词对于大部分工程师来说可能不陌生,但真正进行代码重构的人不多,而持续重构作为开发的一部分的人少之又少。这是什么原因呢

1、重构代码对一个工程师能力的要求,要比单纯写代码高的多。重构需要你能洞察出代码存在的坏味道或者设计上的不足,并且能合理、熟练地利用设计思想、原则、模式、编程规范等理论知识解决这些问题。

2、很多工程师对为什么要重构,到底重构什么、什么时候重构,又该如何重构等相关问题理解不深,对重构没有系统性的认识,面对一堆烂代码,没有重构技巧的指导,只能想到哪改到哪,并不能全面地改善代码的质量。

 

重构需要掌握的知识点:

1、对重构概括性的介绍,包括重构的目的(why)、对象(what)、时机(when)、方法(how)。

2、保证不出错的手段,重点是单元测试和代码的可测试性

3、不同规模的重构,大规模高层次的重构(比如系统、模块、代码结构、类与类之间的交互等重构)和小规模低层次重构(类、函数、变量等重构)

 

这一部分内容:重构的目的、对象、时机、方法

 

重构是一种对软件内部结构的改善,目的是在不改变软件的可见行为的情况下,使其更易理解,修改成本降低。其中的重点“重构不改变外部可见行为”。我们可以理解为,在保持功能不变的情况下,利用设计思想、原则、模式、编程规范等理论来优化代码,修改设计上的不足,提高代码质量。

 

重构的目的:为什么重构(why)

对于项目而言:

1、重构使避免过度设计的重要手段。在维护过程总,真正遇到问题的时候,再对代码遇到问题时再进行重构,能过有效的避免项目前期过度设计,做到有的放矢。

2、优秀的的代码或者架构不是一开始就能完全设计好的。而是不断迭代出来。而重构是在迭代过程中保证代码质量的一个重要的手段,不至于让代码腐化到无可救药的地步。

3、在项目演进过程中如果没有人为代码的质量负责,代码总会往越来越混乱的地方演进。当混乱到一定程度,可能会引起质变,设置维护项目的成本要高于重新开发一套新代码的成本。

对个人而言:

1、重构是我们学习经典设计思想、设计原则、设计模式、编程规范的练兵场,是将这些理论知识进行实践的好机会。能够有效的提高我们的代码能力。

2、所谓“初级工程师在维护代码、高级工程师在设计代码、资深工程师在重构代码”。这句话的意思是说,初级工程师在已有的框架下修改bug,修改添加功能代码;高级工程师从零开始设计代码结构,搭建代码框架;而资深工程师为代码质量负责,需要发觉代码存在的问题,重构代码,时候保证代码处于一个可控状态。

 

重构的对象:到底重构什么(what)

重构可以笼统的分为:大规模高层次的重构(以下简称为“大型重构”)和小规模低层次的重构(以下简称“小型重构”)。

大型重构指的是对顶层代码设计重构,包括:系统、模块、代码结构、类与类之间的关系的重构。重构的手段有:分层、模块化、解耦、抽象可用重复组件等等。这类重构设计到的代码多,范围广,影响和难度都比较大,耗时较长,有可能引入bug。

小型重构指的是对代码细节的重构,主要针对的是类、函数、变量等代码级别的重构,比如命名规范、规范注释、消除超大类或者函数、提取重复代码等等。这类重构修改的地方比较集中,比较简单、可操作性比较强,耗时比较短,引入bug的风险也比较小。只需要掌握各种编程规规范,就可以得心应手。

 

重构的时机:什么时候重构(when)

不要在代码烂到一定程度,在集中重构解决所有问题,这是不现实的,必须有一条可持续、可演进的方式。所以提倡的重构策略是持续重构。就是平时没有事情的时候,看看项目中有哪些地方写的不够好,哪些功能代码不符合规范,是不好的设计,可以主动的去优化代码,主动进行代码重构。把code review作为开发的一部分。

 

重构的方法:又该如何重构(how)

对于大型重构,需要提前做好完善的重构计划,有条不紊的进行。每个阶段完成一小部分代码重构,然后提交、测试、运行,发现没有问题。再继续下一阶段的重构,保证代码一直处于可运行,逻辑正确的状态。每次重构都要控制好重构影响的代码范围,考虑好如何兼容老的代码逻辑,必要的时候还需要写一些兼容性的过度代码,只有这样才能让每个阶段的重构都不至于耗时太长,不至于与新功能相冲突。

大型重构一定是有组织,有计划,并且非常严谨,需要有经验,熟悉业务的资深同事来主导。

对于低层次的重构,影响范围小,只要愿意随时可以做。

 

参考:设计模式之美--王争

本文地址:https://blog.csdn.net/erge353729094/article/details/107501793

相关标签: 设计模式