防御性编程技巧第三部分

5 不要让任何人做他们不该做的修补工作内部的事情就应该留在内部。私人的东西就应该用锁和钥匙保管起来。不要把你的代码初稿示于众人。不管你多么礼貌地恳求,只要你稍不注意,别人就会篡改你的数据,然后自以为是地试着调用“仅用于执行”的例行程序。不要让他们这样做。— 在面向对象的语言中,通过将属性设为专用(private)来防止对内部类数据的访问。在C++中,可以考虑使用Cheshire cat/pimpl idiom。— 在过程语言中,你仍然可以使用面向对象(oo)的打包概念,将private数据打包在不透明的类型背后,并提供可以操作它们的定义良好的公共函数。— 将所有变量保持在尽可能小的范围内。不到万不得已,不要声明全局变量。如果变量可以声明为函数内的局部变量,就不要在文件范围上声明。如果变量可以声明为循环体内的局部变量,就不要在函数范围上声明。说说“何时”何时进行防御性编程?你是否在事情不顺利时才开始这样做?或者在整理一些你不理解的代码时才开始?不,这是不对的,你应该从始到终地使用这些防御性编程的技巧。它们应该成为你的第二天性。成熟的程序员已经从经验中得到教训,在吃过不止一遍的苦头之后,他们才明白了增加预防措施是明智的。在开始编写代码时就应用防御性策略,比改进代码时才应用要容易得多。如果你很晚才试着将这些策略强加进去,就不可能做到万无一失。如果你在问题出现后才开始添加防御性代码,实际上你是在调试,被动地做出反应,而不是积极地防患于未然。然而,在调试的过程中,甚至在添加新的功能时,你将发现一些你希望验证的情况。这常常是添加防御性代码的好时机。

6 编译时打开所有警告开关大多数语言的编译器都会在你“伤了它们感情的时候”给出一大堆错误信息。当这些编译器碰到潜在的有缺陷代码时(如在赋值之前使用C或C++变量)[3],它们也会给出各种各样的警告。通常情况下,这些警告可以有选择地启用或禁用。如果你的代码中充满了危险的构造,你将会得到数页的警告信息。糟糕的是,通常的反应是禁用编译器的警告功能,或者干脆不理会这些信息。这两种做法都不可取。在任何情况下都要打开你的编译器的警告功能。如果你的代码产生了任何的警告信息,立即修正代码,让编译器的报错声停下来。在启用了警告功能之后,不要对不能安静地完成编译的代码感到满意。警告的出现总是有原因的。即使你认为某个警告无关紧要,也不要置之不理。否则,总有一天这个警告会隐藏一个确实重要的警告。关键概念 编译器的警告可以捕捉到许多愚蠢的编码错误。在任何情况下都启用它们。确保你的代码可以安安静静地完成编译。

5c1ab74b9d3945f9a6f452ae0467429b.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、付费专栏及课程。

余额充值