5

我得到了一个徒劳的任务来合并我的前任写的一些程序。一堆乱七八糟的乱七八糟的代码。

到目前为止,我只知道自动识别(Ci)。所以我想知道你是否可以推荐一些工具。

我遇到的一些关键问题:

  • 对同一结构的分配在整个文件中闪闪发光
  • 这是一个大代码文件 - 我想拆分它
  • 相当多的代码会产生从未使用过的结果

更新漂亮的部分,我发现 Emacs 的 Matlab 模式可以打破过长的行,这很合理。

4

1 回答 1

8

增量重构是前进的方向。

  • 选择一个看起来相当独立的 m 文件,并计算出它应该做什么。
  • 为 m 文件创建一个测试。这可以像从文件中加载一些数据一样简单,使用该数据作为参数调用函数,并检查结果是否与原始输出匹配(显然,在您进行任何更改之前,测试应该通过!)
  • 开始对文件进行更改。每隔一段时间,运行测试以确保它仍然通过。如果它没有通过,那么你已经破坏了一些东西 - 撤消你的最后一组更改(你正在使用版本控制,对吗?)然后再试一次。
  • 重复直到完成,总是从最不依赖的函数开始到最依赖的函数。

不幸的是,没有灵丹妙药。您可以依赖 Matlab linter,它会告诉您何时从未分配或使用变量,或者何时从未调用函数,但除此之外,您需要一次整理代码,并在测试时进行测试去。

于 2012-07-23T15:40:32.007 回答