软件编程中的预防与调试策略
1. 预防性编程措施
1.1 编译器配置
定位和消除与语法相关的错误的最佳方法是配置编译器,使其对警告信息具有最高的敏感度。也就是说,要让编译器将警告视为错误,在出现警告时停止构建可执行文件。虽然这种策略可能会让人感到厌烦,但它能促使你编写更具防御性的代码。
1.2 不依赖编译器
尽管编译器能够识别与语法相关的问题,但你不应完全依赖它。编译器只是一个用于隔离错误的工具,并非最佳或唯一的工具。过去,人们会反复在脑海中追踪程序的执行路径,还会将代码拿给他人阅读。如今,随着个人计算机和高速处理器的出现,很多软件工程师只是快速编写代码,不断调整直到没有编译器警告,就认为程序没有问题了。但实际上,没有编译器警告并不意味着程序没有错误。你需要对尽可能多的执行路径进行单元测试,并让他人审查你的代码。
1.3 构建设置
始终确保有一个调试版本可用,即使你已经向客户部署了发布版本。这样,当客户在凌晨 3 点遇到安装问题时,你就可以使用相应的调试版本进行调试。没有什么比处理一个无法用调试器检查的问题更令人不安的了。
1.4 反编译器的威胁
为了保护知识产权,人们通常会在构建时不包含调试符号。因为存在一些反编译器工具,它们可以根据程序的调试版本重新生成应用程序的源代码。例如,Java 字节码丰富的符号格式使得逆向工程对 Java 应用程序构成了严重威胁。1996 年,Hanpeter van Vliet 开发并发布了第一个著名的 Java 反编译器 Mocha。之后,由于开发者的担忧,他曾将其从网站上移除,但后来又根据用户投票决定让它回归。从那以后,聪明的开发
超级会员免费看
订阅专栏 解锁全文
1083

被折叠的 条评论
为什么被折叠?



