基于《重构》的代码重生之路

我们为什么要重构

  你一定经历过,工作中,历史项目里面,一个函数几百行,变量命名不清晰,每每出现bug,用于修复bug的时间往往在看懂原开发者的意图之上。总之为了早点下班,为了更美好的生活。我们有必要写出清晰,优雅的代码,让我们自己开心,也让以后的开发者不在心中暗骂我们。

 

编写思路

  本文主要以《重构》第二版为参照,基于现实开发中的实际问题进行解析,并加入部分实际开发代码(伪代码)进行描述,希望读者看完这篇文章,能够有所收获。

 

1. 提炼函数(Extract Function)

  提炼函数,顾名思义就是将我们的代码块以函数的形式进行存放,这种方式最大好处就是避免过长的代码,同时良好的函数命名也可以让读者知道这部分代码的用意。那么我们如何判断是否需要提炼函数呢,《重构》作者提出的观点是,如果你需要花时间浏览一段代码才能弄清它到底在干什么,那么就应该将其提炼到一个函数中,并根据它要做的事情为其命名。(往往花了很多时间还是不能很好的理解代码的意图,那就是代码的坏味道),下面是实际的做法:

  1.   创造一个函数,根据函数的用途对其命名。
  2.       将待提炼的代码复制到新建的目标函数中。
  3.   仔细检查提炼代码,是否错在变量作用域问题,或者值的修改的问题,防止作用域污染。
  4.   处理有问题的变量,自测, 完成提炼。

 

  举个例子:

  1. 聚合逻辑相关代码,进行整合,防止同一逻辑代码相距过远。

function test () {
  let a = 1;
  console.log('111111')      
  console.log(a);
}

// 实际调用a的时候在1111下面,虽然不影响代码执行,但是推荐如下操作

function test () {
  console.log('111111')
  let a = 1;      
  console.log(a);
}

// 聚拢代码之后,就可以将逻辑相近的代码提炼出来

function consoleA () {
  let a = 1;
  console.log(a);
}

  

----------------

posted @ 2022-05-22 10:56  Recklessz  阅读(32)  评论(0编辑  收藏  举报