避免“垃圾进,垃圾出”
在编写程序的时候,要避免“垃圾进,垃圾出”,解决的办法是:
1、垃圾不准进
2、垃圾进来,给出提示信息,并且设置一个合适的默认值。
结合实际项目谈谈。在项目中,需要解析一个数据文件,这个数据文件是程序自动生成的。人工修改数据文件,设置无效或者错误的信息,这种情况太多,比如属性长度设置为string,或者负数。在解析数据文件的时候,对每一个属性的每一种错误情况,都要进行考虑,并且给出详细的错误说明,很难做到。就算做到了,也是很差劲的设计。因为,程序中充斥着大量这样的代码:判断有效性,给出错误提示,这样就掩盖了真正要做的重要事情。
也就是说,垃圾进来,给出提示信息,不合适。那么怎么办呢?对于这种情况,人工修改数据文件后,数据文件就属于垃圾数据了。
可以这样处理,在生成这个数据文件的时候,采用一个算法根据文件的内容生成一个校验码。在解析数据文件的时候,采用同样的算法,根据数据文件的内容,再次计算校验码。如果校验码不一致,说明数据文件被人修改了。当然,存在这种可能性,数据文件修改了,但是生成的校验码还是一样。但是,在不知道生成校验码算法的前提下,出现这种情况,概率微乎其微。