代码之家  ›  专栏  ›  技术社区  ›  mezoid

用于实践旧代码重构的代码片

  •  114
  • mezoid  · 技术社区  · 15 年前

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

    有很多地方可以找到卡塔。像…

    http://codekata.pragprog.com/

    http://schuchert.wikispaces.com/Katas

    http://www.codingdojo.org/

    我发现这些是非常好的卡塔的宝库…我对其中一些的尝试是非常有益的。

    不过,我觉得到目前为止我所看到的所有卡塔都有一个缺点。它们似乎都不允许我练习重构坏代码。第一次学习如何编写干净的代码是很好的……但在我目前的工作中,我没有太多机会编写新代码。相反,我经常与遗留代码作斗争,试图找出如何重构模块、消除依赖性和减少耦合。

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

    有人知道已经存在的吗?我知道我在工作的时候有很多练习……但是我想磨练我的技能,使我能够很快看到如何在做得太多的课程中分离依赖和分离关注点。

    3 回复  |  直到 9 年前
        1
  •  84
  •   Ryan    15 年前

    我不知道有哪个网站可以直接将它们编目,但我偶尔会用到的一个策略是:

    1. 在SourceForge上查找一个旧的、小的、未维护的开源项目
    2. 下载它,让它编译/构建/运行
    3. 阅读文档,了解代码
    4. 使用技术 修改代码的艺术 在测试中得到一块
    5. 重构这段代码,也许可以修复错误并添加特性。
    6. 重复步骤4到6

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

    这不仅仅是练习重构,还包括代码读取、测试和处理构建过程等其他技能。

    最困难的问题是找到一个你有兴趣继续工作的项目。我研究的最后一个是一个用于遗传编程的Python库,而我现在正在研究的是Java的IRC库。

        2
  •  18
  •   LAFK says Reinstate Monica    12 年前

    我觉得亡灵巫师应该回答这样一个古老的问题,但有一件事是值得一提的。- Legacy Code Retreat .

    想法是有一个 Code Retreat 使用遗留代码并尝试练习处理这些代码的技巧,但是我看不到任何可以禁止您简单地使用准备好的代码并自己使用它的方法。仅仅用它来创造一个黄金大师就需要一个小时的工作,而且还有很多事情你可以做。如果你的kata通常持续2个小时左右,我会说,只要把LCR上通常发生的事情分解成kata,就可以给你四种不同的工作方式。

    有一个 GitHub repository 由IDEA的作者J.B.Rainsberger编写,它包含了一个简单的遗留系统,你将要使用,琐事游戏。

    从我作为组织者/参与者的经验来看,人们真的很喜欢这一点,看到遗留代码中可能存在的问题以及重构会导致您误入歧途(以及如何!).下面是另一个关于它看起来如何的描述, Andreas Leidig .

        3
  •  17
  •   Steve Clanton    9 年前

    Emily Bache有一个Github存储库,其中包含一些重构数据包: Emily Bache's Refactoring Kata Repo . 有各种各样的katayahtzee和kataTennis可以重构。此外,她还有一个镀金玫瑰片的变体,它被设计成一个重构片。

    此外,她还将赛车katas放在报告中: Racing Car Kata . 赛车纸牌还包括重构的好练习。

    这些kata有多个语言版本的代码:

    • C++
    • C.*
    • 爪哇
    • JavaScript
    • 蟒蛇
    • 红宝石