refactoring - Coding Katas 用于练习遗留代码的重构

标签 refactoring legacy-code

最近几个月,我对编码 katas 非常感兴趣。我相信它们是磨练我的编程技能和提高我在工作中编写的代码质量的好方法。

有很多地方可以找到 Katas。像..

http://codekata.pragprog.com/

http://schuchert.wikispaces.com/Katas

http://www.codingdojo.org/

我发现这些是 Katas 的优秀存储库……我对其中一些的尝试获得了巨大的返回。

但是,我觉得到目前为止我看到的所有 Kata 都有一个缺点。他们似乎都不允许我练习重构糟糕的代码。第一次学习如何编写干净的代码很棒……但是在我目前的工作中,我没有太多机会编写新代码。相反,我经常与遗留代码作斗争,并试图弄清楚如何重构模块、消除依赖关系和减少耦合。

因此,我正在寻找一些可以用来磨练我重构遗留代码并将其转换为干净代码的技能的 Katas。

有人知道已经存在的吗?我知道我在工作时会进行很多练习......但我想磨练我的技能,以便我能够快速了解​​如何在类中分离依赖项和分离关注点做得太多了。

最佳答案

我不知道有哪个网站可以直接对它们进行分类,但我有时使用的一种策略是:

  • 在 sourceforge
  • 上查找一个旧的、小型的、未维护的开源项目
  • 下载它,让它编译/构建/运行
  • 阅读文档,感受一下代码
  • 使用有效地使用遗留代码中的技术来测试其中的一部分
  • 重构那部分,可能会修复错误并在此过程中添加功能
  • 重复步骤 4 到 6

  • 当你发现一个特别具有挑战性的部分时,扔掉你的工作并重复几次以加强你的技能。

    这不仅仅是练习重构,还有其他技能,如代码阅读、测试和处理构建过程。

    最难的问题是找到一个你有足够兴趣继续工作的项目。我最近做的是一个用于基因编程的 python 库,而我目前正在做的是一个用于 Java 的 IRC 库。

    关于refactoring - Coding Katas 用于练习遗留代码的重构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1432485/

    相关文章:

    javascript - 可以在react-redux中编写props来覆盖connect()吗?

    pointers - Fortran 中的故意类型不匹配

    java - 在大型Java堆转储中查找内存泄漏的方法

    c++ - 与 Visual Studio 2008 一起使用需要哪个 Windows 驱动程序工具包

    c# - 如何在 Visual Studio 中使用 "Light bulb"重构工具来使用显式类型而不是 var?

    java - Eclipse方法调用重构

    php - 在 PHP 中,如何将过程代码包装在类中?

    java - 如何使内部 Java 包在 Eclipse 中可访问?

    java - 查找仅使用特定类型参数的一个特定属性的所有 Java 方法

    java - Sling调度器方法重构