【发布时间】:2017-05-19 13:57:04
【问题描述】:
抱歉,如果问题不太好,这是我的第一篇文章。
我知道在 Java 中防御性编程是一件好事,因为它会阻止变量的值在不应该被更改的情况下被更改。但是,如果一个程序被编译,是否需要这样做?
我的意思的一个例子如下:
对于我的大学课程,我必须使用 Java 中的 Swing 和 AWT 创建一个 Web 浏览器。这个网络浏览器是由我单独创建的,当它被提交时,我必须发送一个可执行的 JAR 文件和 .java 文件(只是为了它们可以被标记,它们不会被编辑)。
就我而言,就编程而言,我知道我不会做任何防御性编程本应阻止的事情。源代码也永远不会公开或被编辑(无论它是否为公众使用而发布)。因此,既然您无法从可执行文件中获取源代码,为什么还需要防御性编程呢?
我觉得我只会使用它,因为它是公认的编程标准。
我希望我已经解释清楚了。
谢谢。
【问题讨论】:
-
一个 JAR 是可逆的
-
但我的问题仍然适用于任何编程语言,而不仅仅是 Java。 .exe 文件仍然具有相同的点。
-
一旦编译完成,就不是问题了。这是为了防止您在以后忘记源代码的某些方面时弄乱自己的源代码。如果您在相同的代码上工作的时间足够长,即使是作为作者的您最终也会开始忘记事情。帮自己一个忙,让未来的你更难打破常规。
-
您似乎认为防御性编程是关于复制保护或类似的东西。它不是。 Defensive programming(维基百科):防御性编程是一种防御性设计形式,旨在确保软件在不可预见的情况下继续发挥功能。 它是关于错误处理,使代码保护自己免受不良数据甚至编码错误的影响。
-
@nos 所以它基本上可以保护你免受你自己的伤害,如果适用的话,还有其他从事同一项目的开发人员吗?我在 9 月开始使用 Java,我并没有真正同时在做项目,所以你说得对,我没有经验!
标签: java standards defensive-programming