任务2:消除重复代码

这道题的坏味道其实不少,把第三章的坏味道怼上去一对比,就发现至少有这么几种坏味道:

  • 重复代码 - 有许多取值函数的重复、甚至还有一些代码重复

  • 过大的类 - 无论如何,180 行的类还是太大了

  • 依恋情结

  • 基本类型偏执

我们从哪里开始呢?总是要从最简单的地方开始,下手处理这个过大的类现在看来似乎还没有很明确的方向,也许先行处理重复代码是不错的方向。一来收敛重复的代码可能简化未来的重构,二来提炼出重复代码后,我们可能更容易看见其他的一些坏味道。

提醒一下,重复代码这件事,也可以让 IDE 给你一点提示。

你的任务

Java:

git checkout task-2-eliminate-some-duplication
cd java && ./gradlew clean build

JavaScript:

git checkout task-2-eliminate-some-duplication
cd javascript && npm test
  • 找出代码中存在重复的代码,消除这些重复代码

  • 查看提炼后的代码,看看是否能给它们(函数、变量)更好的命名

反思

  • 你用什么手法来消除重复代码?

  • 消除完重复代码以后,有没有新的坏味道浮现出来?

Last updated