写代码是一个富有创意但又可能让人思想麻痹的任务,不管你是否喜欢你的工作,你总会找一些捷径,但遗憾的是,大部分捷径都违反了最佳编码实践原则,这些捷径要么会产生BUG,要么会导致数据出错,我的建议是:在编写VBA代码时,不要走捷径。下面是一些常见的错误观念,导致人们选择了错误的捷径,虽然其中一部分只适用于VBA或某种IDE,但大多数都是通用的。 1、我不需要else子句 If…then…else,select case等VBA语句都包含了else子句,这个子句后跟随了所有具体的决策条件,这是处理一些带条件事情的最好机会,但开发人员却忽略了这个机会,并认为没必要这么做。包括一个else子句并不难,并且还可以提供一层额外的错误捕捉机会,你可以显示一般性错误,让用户知道预期的决定或行动不会发生,或是通过日志记录下来,用电子邮件发送给管理员或内部开发人员,总之想让事件引起注意,一个未执行的else子句比多个选择更好。 2、goto是一个有效的语句,我经常使用它 Goto是一个有效的语句,但使用不当会产生难以驾驭的代码,而且会隐藏错误和拙劣的程序设计,当你不能想出一个更好的策略时,不要轻易使用goto语句,当你真正需要一个简单的重定向程序流时可以使用它,每次敲下goto时都问一下自己,是否有其它方法来处理这个重定向?如果有就不要使用goto(我在VBA开发中就从未使用过goto语句)。 3、编译器是在浪费时间 和其它编译器不同,VBA编译器不会生成一个可以脱离Office独立执行的模块,相反,VBA编译器实际上是一个语法检查器,在真实运行之前,编译你的代码是捕捉语法错误简单有效的方法,你为什么要这么做呢?因为语法检查器通常提供更深入的错误信息,因此你可以更快地解决问题。 4、无任何错误需要处理 大多数开发人员还没有自信到自己的代码是完美无缺的,但大多数人对错误处理都会掉以轻心,错误处理和你的设计和逻辑一样重要,不要放弃它,相反,在处理错误时应当特别小心,一个未处理的错误通常意味着程序投入使用后,你会接到更多的支持电话,也许程序因这个错误而停止了工作,也许它导致了数据异常,在处理错误时,你可以: 与你的用户分享一些信息,包括立即纠正错误的说明。 帮助程序立即从错误中安静地回复,用户永远也不会知道程序曾经发生了错误。 跟踪错误,以便你进行修复。 5、我的用户将输入正确的数据 如果程序正常运行需要依赖用户的准确输入,这将是风险很大的一件事,这不是对用户能力的质疑,用户都不是傻子,但确保程序正常运行并不是他们的本职工作,你不能依赖他们输入正确的数据,相反,你应该从技术上来验证用户的输入,你可以使用表属性从底层来约束和验证,但大多数时候还是要靠你写的代码来验证,这也许是程序基本功能代码完成后最重要的任务,因此不要吝啬你的代码,不能依靠用户不犯错误的输入,你应该坚定地拿起验证程序捕捉错误并纠正它们。 |
[发布者:yezi] | ||
相关阅读:
·北大新任校长王恩哥:一所大学也要有梦想
·物理学家王恩哥就任北京大学第十一任校长
·研究生为助父“留任”校长编造茂名“最大贪污
·专访:中新高校校长看好亚洲大学发展前景
·粤港合作“一试三证”首颁44张证书
|