存储 《重构: 改善既有代码的设计第二版》的一些示例代码
使用 mochajs 作为我们单元测试套件
运行所有单元测试:
npm run test
运行某个单元测试:
npx mocha ./src/chapter1/*.test.js
-
提炼函数
amountFor
提炼成内联函数的意义不需要再把外部作用域中的数据传给新提炼的函数, 少了一件操心的事情, 尽管当前实例意义不大
-
变量改名:
thisAmount
toresult
永远将函数的返回值命名为 “result”
-
变量改名:
perf
toaPerformance
动态类型语言中变量命名带上类型很有意义, 这里使用不定冠词
a
修饰它强调一个场表演 -
提炼函数:
playFor
play 变量可以由 performance 变量计算得到, 以查询取代临时变量
-
内联变量: 使用
playFor(perf)
替换statement
函数中的play
变量 -
移除
amountFor
的play
函数参数- 使用
playFor
代替play
参数 - 移除
amountFor
的play
参数以及调用amountFor
传参
- 使用
-
内联变量: 使用
amountFor(perf)
替代 perf -
提炼函数: 提炼观众量积分逻辑到函数
volumeCreditsFor
由于之前把
play
替换成platFor
, 这样提炼函数就少了一个局部作用域的变量 -
变量改名:
perf
toaPerformance
,volumeCredits
toresult
-
函数变量
format
改变成函数声明format
-
函数改名:
format
tousd
format -> formatAsUSD -> usd
, 表意, 因为需要在模板中使用, 所以太长使用起来不太方便, 因此最后改成usd
- 移除观众量积分总和
volumeCredits
被在循环迭代过程中累加,volumeCredits
累加过程可以分离出来