如何从 ruby​​ 程序中删除功能? [英] How do you remove functionality from a program in ruby?

查看:29
本文介绍了如何从 ruby​​ 程序中删除功能?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您有一些要删除的代码与来自 ruby​​ 项目的过时功能.如何确保您摆脱所有代码?

You have some code you want to remove associated with an obsolete piece of functionality from a ruby project. How do ensure that you get rid of all of the code?

一些通常有助于重构 ruby​​ 的准则适用,但存在额外的挑战,因为代码不被任何东西调用不会破坏任何单元测试.

Some guidelines that usually help in refactoring ruby apply, but there are added challenges because having code that isn't being called by anything won't break any unit tests.

更新:有没有人写过任何东西,让您可以根据您的版本控制历史来猜测是否存在您已删除大部分(但不是全部)代码的提交,并且可以指出剩余代码?

Update: Has anyone written anything that allows you to guess based on your version control history if there are commits where you have since deleted most, but not all, of the code and can point out the remaining code?

推荐答案

当前想法:

  • 确定与过时功能相关的堆栈的最外层部分:调用它的二进制脚本,或调用它的单元测试.
  • 查找仅由与过时功能关联的方法调用的方法.为此,我经常使用 git grep.
  • 理论上,运行突变测试并寻找曾经在应用旧测试套件时具有抗突变性但现在容易发生突变的代码可能会有所帮助.只有在您的代码首先经过良好测试时,它才会有所帮助!(或者您可以使用代码覆盖工具,例如 rcov 而不是变异测试)
  • 运行测试套件将确保您没有删除任何不应该删除的内容!
    • 如果您经常运行测试,使用自动测试可以节省您的时间.

    这篇关于如何从 ruby​​ 程序中删除功能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆