如何缩小基于时间(r)的bug

时间:2014-03-01 21:10:08

标签: android

我这里有一个模块,可以平滑一些UI输出。它由带时间戳的数据提供。模块本身有一个计时器,连同大量代码,确保在另一端有一个很好的视觉效果。

但有时候,整个事情都会陷入困境。它极难重现,到目前为止我可以缩小一些东西。 1)输入仍然正常 2)设备仍然响应

因此,某种程度上平滑的逻辑有一个错误,在某些条件下会挂起来。我记录了所有“返回”,因为它仍然是绘图的东西,但值似乎没有改变,所以链必须在某处切断。

代码中的每个return语句都有意义,并且出于正当理由每次都会调用它们,并且它们不会破坏代码。但必须有一些事件/事物/价值观的组合才能打破它。

代码本身写得不好(一些实习生,他现在不知道他当天做了什么),几乎没有文档,我很难理解代码而且我不是dummie。

该模块“有效”,我们不知道该错误是否一直存在,或者是否有一天由其他一些变化引入。时间紧迫,单元测试不存在。 我知道它应该是不同的,但这只是现实生活。

现在总是有重写...但是我怎么能首先尝试缩小bug并且可能为自己省去很多麻烦并且只是用一些快速的肮脏来修复它? (也许它根本不脏,我只是修复了失踪的1%到100%工作)

我没有单元测试的经验,我真的不知道在这种情况下我们正在讨论设置测试的时间。我远远超出了理想的条件,它更像是电影“捕食者”中的施瓦辛格。

欢迎任何帮助。

1 个答案:

答案 0 :(得分:0)

根据我的经验,有时需要花费更多时间来理解和逆向设计别人的代码,而不是从头开始编写自己的版本。在过去,我决定自己重写完整的程序,有时将代码减少80%,从而产生更优雅和可读的代码。如果我们谈论一个大项目,这可能是不可能的。

要记住的一些重要事项是:
- 你知道算法吗,或者你首先要对它进行逆向工程 - 在合理的时间内用你的技能重写代码 - 您是否需要经常维护代码

另外,如果代码是由没有经验的程序员编写的,那么将来你可能会发现更多错误。

根据您提供给我们的信息,您无法向您提供准确的建议。如果可能的话,使用你最好的判断,重写部分代码,将代码分成不同的类,模块化,重命名变量,清理它们......这个bug可能会变得更加明显。