2

可能重复:
最喜欢的(聪明的)防御性编程最佳实践

一些程序员总是建议我集中精力进行简单的调试。什么是防御性编程,在练习时应该考虑到什么程度?

还有一个更重要的问题:编码时是否需要考虑任何关键事项?它们是什么?

4

4 回答 4

6

看一下

防御性编程是开发人员在绝对必要时做出尽可能少的假设的想法。此外,开发人员先发制人地创建不仅可以预见潜在问题,还可以预见规范更改的代码。

于 2009-12-19T11:31:53.410 回答
3

根据经验——如果你发现自己在想“这将永远是真的”,那就写ASSERT( condition)在那个地方。这可能是防御性编程的核心;)。

于 2009-12-19T11:35:08.187 回答
2

如果防御性编程仅意味着一件事,那就应该广泛使用断言

是一篇关于何时何地使用的好文章assert

在很多情况下使用断言是好的。本节介绍其中一些:

* Internal Invariants
* Control-Flow Invariants
* Preconditions, Postconditions, and Class Invariants
于 2009-12-19T11:54:08.117 回答
0

http://en.wikipedia.org/wiki/Defensive_programming

防御性编程意味着,您检查文件是否存在以及您是否有权打开它,而不是仅仅尝试打开它并捕获任何最终的异常。(只是一个例子)

于 2009-12-19T11:30:46.177 回答