Java 如果源代码是隐藏的,为什么需要防御性编程?
抱歉,如果问题不太好,这是我的第一篇帖子 我知道在Java中,防御性编程是一件好事,因为如果变量的值不应该更改,它会阻止变量的值被更改。但是,如果编译了一个程序,是否需要这样做 我的意思的一个例子如下: 在我的大学课程中,我必须使用Java中的Swing和AWT创建一个web浏览器。这个web浏览器完全由我创建,提交时我必须发送一个可执行的JAR文件和.java文件(只有这样才能标记它们,它们才不会被编辑) 从编程角度来看,我知道我不会做任何防御性编程应该阻止的事情。源代码也永远不会公开或被编辑(无论是否公开使用)。因此,既然您无法从可执行文件中获取源代码,那么为什么需要防御性编程呢 我觉得我只会使用它,因为它是公认的编程标准 我希望我已经解释清楚了Java 如果源代码是隐藏的,为什么需要防御性编程?,java,standards,defensive-programming,Java,Standards,Defensive Programming,抱歉,如果问题不太好,这是我的第一篇帖子 我知道在Java中,防御性编程是一件好事,因为如果变量的值不应该更改,它会阻止变量的值被更改。但是,如果编译了一个程序,是否需要这样做 我的意思的一个例子如下: 在我的大学课程中,我必须使用Java中的Swing和AWT创建一个web浏览器。这个web浏览器完全由我创建,提交时我必须发送一个可执行的JAR文件和.java文件(只有这样才能标记它们,它们才不会被编辑) 从编程角度来看,我知道我不会做任何防御性编程应该阻止的事情。源代码也永远不会公开或被编辑
谢谢。无数评论精彩地回答了这个问题。最好是摘自@Carcigenicate的评论
一旦它被编译,它就不是一个真正的问题。这是为了防止您在忘记源代码的某些方面时弄乱自己的源代码
所以,我现在还不想把这个问题标记为已回答。无数评论精彩地回答了这个问题。最好是摘自@Carcigenicate的评论
一旦它被编译,它就不是一个真正的问题。这是为了防止您在忘记源代码的某些方面时弄乱自己的源代码
所以我现在还不想把这个问题标记为已回答。JAR是可逆的,但我的问题仍然代表任何编程语言,而不仅仅是Java。一个.exe文件仍然会有相同的点。一旦它被编译,它就不是一个真正的问题。这是为了防止您在忘记源代码的某些方面时弄乱自己的源代码。如果你在同一个代码上工作的时间足够长,即使你是作者,最终也会忘记一些事情。帮你自己一个忙,让未来的你尽可能的不破坏它。你似乎认为防御性编程是关于拷贝保护之类的。不是。(维基百科):防御性编程是一种防御性设计,旨在确保软件在不可预见的情况下继续运行。它是关于错误处理的,使代码保护自己不受坏数据的影响,甚至不受编码错误的影响。@不,所以它基本上是保护您不受自己的影响,如果适用的话,也保护您不受同一项目的其他开发人员的影响?我在九月份开始使用Java,但我并不是同时在做项目,所以你说得对,我没有经验!JAR是可逆的,但我的问题仍然代表任何编程语言,而不仅仅是Java。一个.exe文件仍然会有相同的点。一旦它被编译,它就不是一个真正的问题。这是为了防止您在忘记源代码的某些方面时弄乱自己的源代码。如果你在同一个代码上工作的时间足够长,即使你是作者,最终也会忘记一些事情。帮你自己一个忙,让未来的你尽可能的不破坏它。你似乎认为防御性编程是关于拷贝保护之类的。不是。(维基百科):防御性编程是一种防御性设计,旨在确保软件在不可预见的情况下继续运行。它是关于错误处理的,使代码保护自己不受坏数据的影响,甚至不受编码错误的影响。@不,所以它基本上是保护您不受自己的影响,如果适用的话,也保护您不受同一项目的其他开发人员的影响?我在九月份开始使用Java,但我并不是同时在做项目,所以你说得对,我没有经验!