Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB中的重构_Matlab_Refactoring_Automated Refactoring - Fatal编程技术网

MATLAB中的重构

MATLAB中的重构,matlab,refactoring,automated-refactoring,Matlab,Refactoring,Automated Refactoring,我接到了一个徒劳的任务,合并了我的前任编写的一些程序。一堆乱七八糟的代码 到目前为止,我只知道自动识别(C-I)。所以我想知道你能否推荐一些工具 我遇到的一些关键问题: 对同一结构的赋值在整个文件中闪烁 这是一个大文件的代码-我想分裂它 相当多的代码生成从未使用过的结果 更新 在美观的方面,我发现Emacs的Matlab模式可以很合理地打断过长的行。增量重构是前进的方向 选择一个看起来相当独立的m文件,并确定它应该做什么 为m文件创建一个测试。这可以很简单,从文件中加载一些数据,以该数据作

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

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

我遇到的一些关键问题:

  • 对同一结构的赋值在整个文件中闪烁
  • 这是一个大文件的代码-我想分裂它
  • 相当多的代码生成从未使用过的结果
更新
在美观的方面,我发现Emacs的Matlab模式可以很合理地打断过长的行。

增量重构是前进的方向

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

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

听起来您不需要重构工具。你听起来需要一个分析工具(“这个代码死了吗?”);有了它,你可以自己做很多工作。(假设将分析工具集成到重构工具中会更好)。Matlab的受众并不多(与Java或C相比);我的猜测是,除非Mathworks提供这些工具,否则你不太可能找到这些工具。请注意作者何时使用全局变量或一堆脚本而不是函数。其他建议:使用和某种版本管理:例如Subversion或GIT。其中一些我已经知道了。我只是希望有个工具能帮我完成任务。