C# Java编码风格

C# Java编码风格,c#,java,coding-style,static-analysis,C#,Java,Coding Style,Static Analysis,如何使自己的编码符合标准?C#有和有。Java中有用于代码分析的工具/eclipse插件吗?您使用哪种方法?我使用它们来确保代码遵循某些规则。Checkstyle也可作为 结帐 Checkstyle是一种开发工具,用于帮助程序员编写符合编码标准的Java代码。它自动化了检查Java代码的过程,使人们不用再执行这项枯燥(但很重要)的任务。这使得它非常适合于希望实施编码标准的项目。 Checkstyle是高度可配置的,可以使其支持几乎任何编码标准。提供了一个支持Sun代码约定的示例配置文件。此外,

如何使自己的编码符合标准?C#有和有。Java中有用于代码分析的工具/eclipse插件吗?您使用哪种方法?

我使用它们来确保代码遵循某些规则。Checkstyle也可作为

  • 结帐
Checkstyle是一种开发工具,用于帮助程序员编写符合编码标准的Java代码。它自动化了检查Java代码的过程,使人们不用再执行这项枯燥(但很重要)的任务。这使得它非常适合于希望实施编码标准的项目。 Checkstyle是高度可配置的,可以使其支持几乎任何编码标准。提供了一个支持Sun代码约定的示例配置文件。此外,还为其他已知约定提供了其他示例配置文件

  • 偏振模色散
PMD与JDeveloper、Eclipse、JEdit、JBuilder、BlueJ、CodeGuide、NetBeans/Sun Java Studio Enterprise/Creator、IntelliJ IDEA、TextPad、Maven、Ant、Gel、JCreator和Emacs集成

  • 芬德布格斯
FindBugs使用静态分析来检查Java字节码中是否出现错误模式。静态分析意味着FindBugs可以通过简单地检查程序的代码来发现bug:不需要执行程序。这使得FindBugs非常易于使用:一般来说,您应该能够在下载代码的几分钟内使用它来查找代码中的bug。FindBugs通过分析Java字节码(编译的类文件)工作,因此使用它甚至不需要程序的源代码。由于其分析有时不精确,FindBugs可以报告错误警告,这些警告并不表示真正的错误。实际上,FindBugs报告的错误警告率低于50%


自律有什么问题?如果你不能为格式化这样琐碎的事情做这件事,我对代码的其他质量方面不抱多大希望。

我们公司使用的是javadoc检查

这是一种很好的方式,您可以配置不同的模块,包括要检查的内容,以及在什么级别(如受保护、公共、私有等)


一个提示是,对于javadoc检查,您需要明确说明是否允许一个方法抛出几个异常。这是因为创建者认为让一个方法抛出多个异常是糟糕的设计(换句话说,他们试图控制设计,而不是相关的IMHO)。

和。后两者不仅仅是样式工具。但通常需要付出一些努力,以便在团队成员之间达成一致,并配置工具。

拥有一份分发给团队/部门/组织中所有开发人员的编码标准文档是一个良好的开端。

除上述内容外,是格式化代码的好工具

eclipse编译器警告和代码格式化程序为我们完成了这项工作。尽管我知道checkstyle对代码的实际设计做了更多的语义检查,而不仅仅是合理地进行布局

你可以看看。这是一个开源项目,可以让Checkstyle、PMD和Findbugs的执行变得非常简单。

您如何确保团队中的每个人都知道代码约定?@folone,当@Tim Hawtin-tackline通过Checkstyle运行团队代码时,毫无疑问每次都是100%完美的。我希望我的代码也能这么说。有一种开发理念,人类永远不应该做计算机能做的事情。是的,在编写代码时,95%的时间都遵守约定。我现在是要花一个小时来搜索最后的5%呢,还是只需要使用“jalopy”或eclipse格式化程序之类的工具就可以了。我给你一个猜测。我的哲学是计算机和它的愚蠢的软件可以摆脱我的方式。我不确定,你如何保证每个人都阅读和记住它,即使在每一个小的变化。如果你想确保人们失去很多努力和动力。否则,它将只是另一份无人阅读的文件。它的使用必须得到授权。如果你想有一个编码标准,你需要一些描述该标准的方法和一个确保每个人都遵守该标准的策略。您的编码标准在发布后也不应该有太多的小改动。我发现最好的方法是对基本的编码标准(如可读性和清晰度)有一个高层次的一致性,而不必太担心括号放置等细节。显然,初级开发人员比经验丰富的开发人员需要更多的指导。如果在你的机器上安装插件有问题,那不是我的错。那么为什么下行投票?PMD集成到jDeveloper中,您需要“激活”它吗?默认情况下它能工作吗?NM-我刚刚查看了,它看起来需要安装然后激活。我以为它是内置的。