我经常使用Matlab的小程序来处理各种各样的数据。由于数据来源不一,格式各异,所以每个小程序都带有自己的数据格式转换——把原始数据转换为规则的矩阵形式。这样的程序针对性强,也就是通用性差:一旦数据格式有变,就得改写程序,一般而言这是一件痛苦的事情,因为数据格式的转换已经植根于程序的细枝末节。
所以,一个教训就是要把数据格式的转换单独进行——数据处理程序只接受标准的输入数据。输入数据的标准化,相当于一个标准化的接口。任何原始数据都需要先进行格式转换后,再交给处理程序。这样,当原始数据变化、或者处理要求变化时,就可以修改相应的部分。
虽然看起来这是一个很简单的思路,但却往往是一个容易被忽略的问题。