在MATLAB中重构

bde*_*caf 5 matlab refactoring automated-refactoring

我完成了一项徒劳无功的任务,包括我前任所写的一些程序.一堆乱糟糟的无组织代码.

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

我遇到的一些关键问题:

  • 通过整个文件激发对相同结构的分配
  • 这是一个很大的代码文件 - 我想拆分它
  • 相当多的代码产生了从未使用过的结果

更新 在漂亮的部分我发现Emacs的Matlab模式可以打破过长的线条非常合理.

Chr*_*lor 8

增量重构是前进的方向.

  • 选择一个看似合理自包含的m文件,并找出它应该做的事情.
  • 为m文件创建测试.这可以简单到从文件加载一些数据,用该数据作为参数调用函数,并检查结果是否与原始输出匹配(显然,在进行任何更改之前,测试应该通过!)
  • 开始对文件进行更改.经常进行测试以确保它仍然通过.如果它没有通过,那么你已经破坏了一些东西 - 撤消你最后一组更改(你正在使用版本控制,对吧?)然后再试一次.
  • 重复直到完成,始终从最少依赖的函数开始到最依赖的函数.

不幸的是,没有灵丹妙药.您可以依赖Matlab linter,它将告诉您何时从未分配或使用变量,或者何时从未调用过函数,但除此之外,您需要一次整理一段代码,然后对其进行测试走.