Matlab开发准则

作者:

我所在部门也不是 IT 部门,职位也不是开发职位,但平时工作还是需要大量处理和分析数据、计算和开发各种指标等,还是需要写很多程序,语言以 VBA 和 Matlab。但同时,部门里像着我这种写程序的人并不多,别人并不看我的代码而只关心我提交的结果(说实话,大多数时候即便我写错了也不会有人知道),工作环境也不像专业的 IT 公司或部门,有严格的流程控制和工作平台。我这里没有版本控制、没有自动测试环境、没有代码格式和注释要求,也不需要去 Linux 下干活。我相信国内金融行业有不少人与我处于同样的状态。

这样的状态下,代码质量很难得到保障。这里谈论下我个人维护代码质量的一些做法(目前我已经在维护超过两万行的 Matlab 代码),只针对 Matlab 语言:

1、 类封装 。这个对很多程序员来说是显然的事情,但类在 Matlab 里面是个新鲜玩意儿,我相信像我这么做的人并不多。 类在 Matlab 里效率较低 ,但我觉得在多数情形下是值得的,比如有下列好处

  • Matlab 的类是唯一可以 传引用的数据类型 ,可避免多次的变量复制。
  • 类里可内置缓存和传递数据,适用于有大量金融数据的情况。
  • (与语言无关)类的重用性相当高,用起来也非常直观。

2、单元测试机制:所在部门并没有一个公共的测试平台,测试只能靠自觉。我是这么操作的:所有的测试文件都以'test_'开头,里面写了不少测试案例,一般对每个类或者一类相同类型的函数维护一个共同的测试文件。然后我有一个测试专用文件'testfolder.m',在命令行上输入命令 testfolder(directory_path),将自动运行 directory_path 目录下所有以'test_'开头的'.m'文件。directory_path 参数默认为当前工作目录,所以我在写代码时会不断运行 testfolder 或者 testfolder('..')检查代码正确性。

3、版本维护:通常本机只维护一个工作版本,在工作过程中不断进行单元测试,以保证当前代码能正确进行。同时我会定期将代码 同步到一台公共机器 ,可以让同事在上面使用。

4、代码备份:每次启动 Matlab 时会自动运行 备份脚本 ,该备份脚本将上次备份之后修改过的文件重新备份。

5、代码式样:尽量与 MATLAB Programming Style Guidelines 中文版 )保持一致。

Q. E. D.

类似文章:
编程 » Matlab
在写 Matlab 程序时,函数的命名方式让人头疼,很难保证刚写的一个函数名在很久以前被用过,成为隐藏的一颗炸弹。
编程 » Matlab
Matlab 在启动时会自动运行脚本 startup.m。在这个脚本里可以自动修改当前目录,修改显示方式等等。比如
编程 » Matlab
第一步, which函数可用来获取 Matlab 函数的全路径(包含路径和文件名)。
编程 » Matlab
读者来信:
编程 » Matlab
写了一个统计代码量的函数,函数已 上传到 Matlab Central File Exchange 下载地址 ,使用方法:
前一篇:
CAPM 公式是指一个组合的预期收益率可以用它的不可分散风险大小所刻画,在数学上,它可以表示为一个组合 \( p\) 的收益率 \( r_p\) 的表达式:
风险管理 » VaR, VaR Primer
不管受到多少质疑,各大商业银行和投资银行的财务报表显示, VaR 框架已是现代风险管理的事实标准。我打算用接下来三个月的时间,对 VaR 框架进行一个全面的介绍,从历史到未来、从原理到算法、从逻辑框架到技术细节。这是酝酿了将近一个月的文章,原本打算写一个长篇文章,但随着资料的积累,也有了一些雄心,打算将这个领域彻底梳理一篇,到最后将完成若干篇文章,所有文章都将位于 VaR Primer 系列下。