Ben*_*kes 53 matlab refactoring visualization
我已经拥有数千行Matlab代码,有些作为> 900行函数和一些充满function_name.m
文件的目录.很难弄清楚一切正在做什么(或与之相关)或找出依赖关系.您可以建议将函数结构可视化,例如从哪个函数调用哪些函数以及按什么顺序调用?
pto*_*ato 44
港口到NumPy.
(玩笑.)
通常在Matlab中,您将一些文件写为函数,一些文件作为脚本编写.脚本执行的操作包括加载要处理的数据,并将其提供给函数,并对其进行绘图.
为了组织事情,我将从顶级脚本开始,找出哪些函数进行加载,绘图,处理等.将脚本保存在顶级目录中,并尝试将函数分离到子目录中,根据目的功能.将函数的依赖项放入同一子目录中.尝试使目录中的代码不依赖于父目录(或表兄弟目录)中的任何内容.
每当你弄清楚函数的作用以及它的参数是什么时,写一个doc注释.
这假设编写代码的人是合理的.如果没有,Matlab可以很容易地将所有内容放入一个目录中,并且所有内容都依赖于摇摇晃晃的代码塔中的所有其他内容,因此您最终可能会进行大量的重构.
Mat*_*oug 13
我在The MathWorks的各种角色中不得不多次处理这个问题.这就是我为MATLAB代码做的大事:
选择全部,Ctrl-J以包装注释
如果我感觉纸质 - 打印所有文件,并获得一组荧光笔 - 手动跟随,突出显示长期变量和重要的函数调用.
~~~ AND/OR ~~~
5如果我感到幸运,请开始在调试器中运行代码,一次单步执行一行(单步执行用户编写的子功能)
在这一点上,我可以通过控制结构并遵循典型的流程.我可能不知道一切都做了什么,但我对正在发生的事情有一个很好的想法.
通常,我的目标是找到一个bug,解决它并继续前进.你的目标可能完全不同.这是我用来快速理解多年来发送的不同MATLAB代码片段的方法.
关于Matlab编码约定的一些建议:
使用addpath来避免文件混乱并协助函数taxnomony
分解功能脚本的section_或为条件运行设置,这也可以帮助插件/输出模块和重用或代码引用.
使用配置文件打开和关闭选项
为了区分,考虑为代码修改设置一个新节点,例如.设置树以区分版本.
使用单独的文件夹输入/输出,图像,中间结果等.
使用时间戳来跟踪您的版本
与其他人共享您的代码,如果他们发现难以维护,使用或修改,请重新考虑如何优化您的构建.
归档时间: |
|
查看次数: |
11852 次 |
最近记录: |