Defensive programmingc++
好好思考下数组
至少在个人实践工做中,深受其害的就是没有检查数组被索引时(c/c++)可能致使越界这个问题;lua
其次在一些脚本语言中,像是lua,越界时,现场并没有大碍,只是返回一个nil给你。可是若是你在随后处理的过程当中,没有对这个可能会是nil的返回作一些错误处理的话,后果可能一发不可收拾索引
举个例子:支持热更新的游戏,可能会出现两个玩家一块儿玩,可是其中一个玩家更新了最新的代码和资源,另外一个由于一直在游戏中游玩,因此他尚未更新最新的代码和资源。这个时候就会出现当要读取某个配置文件里的字段时(最新的版本才有),另外一个没有更新的玩家,天然就不存在这个字段。这个时候若是不检查参数的合法性的话,天然就悲剧了。游戏