在某些语言中,有规则/最佳实践等。促进软件安全,确保预期的运行时行为等。我想到的两个是MISRA for C / C ++,以及Ada的Ravenscar配置文件。如果按照这些标准加盖代码,通常会对代码产生温暖的模糊感。 Java是否有这样的标准?
答案 0 :(得分:6)
我不认为有类似于MISRA C / C ++ Java的最佳实践,我认为使用像Java这样的语言也不太必要,因为它没有像未定义或未指定的行为那样多的角落C和C ++有。诸如Java中缺少显式指针以及运行时始终检查数组索引的边界这一事实使Java成为比C或C ++更安全的语言。
大多数Java开发人员都遵循一个通用的编码标准:Code Conventions for the Java Programming Language,但这不仅仅是最佳实践指南的风格指南。
有一些适用于Java的优秀且众所周知的静态代码分析工具:FindBugs和PMD,它们会检查您的代码是否存在危险的构造或不良做法。
如果您想了解Java中潜在的陷阱,强烈建议使用两本书:Effective Java和Java Puzzlers。
答案 1 :(得分:2)
目前,没有MISRA Java - 也没有立即计划创建一个。
MISRA技术委员会曾多次简要讨论过该主题,但在没有任何要求(和/或志愿者参与其中)的情况下,这种情况不太可能发生。
更新:六年......
这个问题已被多次提出,在会议上我一直是演讲者,通常得到观众的广泛支持。我总是通过询问那些志愿成为委员会成员的观众来回答......这使房间沉默:(
TL; DR:如果有足够的志愿者挺身而出,我们会做到的![以个人身份发表,尽管是MISRA技术委员会成员]
答案 2 :(得分:1)
SEI CERT:
Java编码指南包括Java Standard Edition 7平台环境中安全编程的推荐实践。这是一项正在进行的工作,我们积极寻求您的反馈和参与,使这项工作取得成功。我们感谢并感谢所有贡献者。
https://www.securecoding.cert.org/confluence/display/jg/Java+Coding+Guidelines
答案 3 :(得分:0)
有一本名为“Code Complete”的书。这是由一位为Microsoft工作的程序员编写的,并且使用2/3种不同的高级语言也具备专业软件开发方面的知识。除了MISRA C ++,我还使用这本书。 “Code Complete”是一本独立于语言的书,有助于塑造您的专业软件工程实践。
答案 4 :(得分:0)
对于那些遵循这个主题的人,有一个开放安全关键JAVA(oSCJ)计划正在进行,它正在定义安全关键应用程序(JSR-302)的JAVA语言的子集。 http://jcp.org/en/jsr/detail?id=302