防御性编程技巧。第一部分

在防御性编程的大框架之下,有许多常识性的规则。人们在想到防御性编程的时候,通常都会想到“断言”,这没有错。我们将在后面对此进行讨论。但是,还是有一些简单的编程习惯可以极大地提高代码的安全性。尽管看上去像是常识,但是这些规则却往往被人们忽视,这就是为什么世界上并不缺少低质量软件的原因。只要程序员们警惕起来,受到足够的督促,更高的安全性和可靠的开发很容易就能够实现。在下面的几页中,将列出防御性编程的一些规则。我们将先从粗略的概览开始,整体地描述防御的技巧、过程和步骤。随着讨论的深入,我们会加入更多的细节,进一步地逐条分析每条代码语句。在这些防御性技巧中,有一些是与具体的编程语言相关的。这很自然——如果你的编程语言会让你射伤到自己的脚,那么你一定要穿上防弹靴。在阅读这些规则时,请对你自己进行一个评估。在这些规则中,现在你遵循的有几条?你打算采纳哪些规则?

1 使用好的编码风格和合理的设计哪我们可以通过采用良好的编程风格,来防范大多数编码错误。这与本篇的其他章节自然地吻合。很多简单的事,如选用有意义的变量名,或者审慎地使用括号,都可以使编码变得更加清晰明了,并减少缺陷出现的可能性。同样地,在投入到编码工作中之前,先考虑大体的设计方案,这也非常关键。“最好的计算机程序的文本是结构清晰的。”(见参考书目Kernighan Plaugher 78)从实现一套清晰的API、一个逻辑系统结构以及一些定义良好的组件角色与责任开始入手,将使你避免以后处处头疼的局面。

2 不要仓促地编写代码闪电式的编程太常见了。使用这种编程方式的程序员会很快地开发出一个函数,马上把这个函数交给编译器来检查语法,接着运行一遍看看能不能用,然后就进入下一个任务。这种方式充满了危险。相反,在写每一行时都三思而后行。可能会出现什么样的错误?你是否已经考虑了所有可能出现的逻辑分支?放慢速度,有条不紊的编程虽然看上去很平凡,但这的确是减少缺陷的好办法。关键概念 欲速则不达。每敲一个字,都要想清楚你要输入的是什么。在C语言中,有一个会使追求速度的程序员犯错的陷阱,即将“==”错误地输入为“=”。前者为相等关系测试,而后者则是变量赋值。如果你的编译器功能不全(或者关闭了警告功能),你就不会得到相关提示,也就无从得知自己输入了不该输入的东西。一定要在完成与一个代码段相关的所有任务之后,再进入下一个环节。例如,如果你决定先编

d248f957e8544ebda335112f55cc60f1.png

1、最累的时候,家人是你最好的归宿。

  2、程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。

  3、编程是一种单调的生活,因此程序员比普通人需要更多的关怀,更多的友情。

  4、程序不是年轻的专利,但是,他属于年轻。

  5、没有情调,不懂浪漫,也许这是程序员的一面,但拥有朴实无华的爱是他们的另一面。

  6、一个好汉三个帮,程序员同样如此。

  7、一个100行的代码调试都可能会让程序员遇到很多挫折,所以,面对挫折,我们永远不能低头。

  8、调试完一个动态连接函数,固然值得兴奋,但真正的成功远还在无数个函数之后。

  9、程序是我的生命,但我相信爱她甚过爱我的生命。

  10、信念和目标,必须永远洋溢在程序员内心。

  11、就算我们站在群山之颠,也别忘记雄鹰依旧能从我们头顶飞过。骄傲是比用Java进行底层开发更可笑的东西。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿阿存

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值