【问题标题】:How to deal with Conflicting coding conventions?如何处理冲突的编码约定?
【发布时间】:2011-09-09 03:27:47
【问题描述】:

通常我们使用各种静态代码分析工具来分析我们的代码以进行验证。但我看到了一些相互矛盾的场景。

例如,如果我们使用类变量,StyleCop 会建议我们使用

this.Name = myName

而不是,

Name = myName

但这会弹出 Resharper 错误“冗余限定符”,并建议不要使用“this”。符号。

因此,在这种情况下,我需要检查更一致的参考来选择正确/最佳的参考。有没有这样的资源可以“定义”正确的约定?

【问题讨论】:

  • "各种静态代码分析工具"有你的问题。
  • 如果您对任何答案感到满意,请将其标记为答案。 :)

标签: c# .net resharper coding-style stylecop


【解决方案1】:

没有正确的约定,你采用你喜欢的那个,那就是你的基线/参考。

如果您同时使用 ReSharper 和 StyleCop,则应将它们设置为协同工作,这意味着以相同的方式接受和验证代码。

【讨论】:

    【解决方案2】:

    这是一个主观问题,所以这是我的主观回答:我同意 Resharper 并认为 this 是多余的。我个人在字段名称前加上下划线:

    public class Foo
    {
        private readonly string _name;
    
        public Foo(string name)
        {
            _name = name;
        }
    }
    

    然后我配置静态分析工具以遵守我使用的约定。

    【讨论】:

      【解决方案3】:

      不同的工具提出不同的建议。我建议您制作自己的编码指南文档并与您的团队分享(从现有的编码约定开始)。然而,一个很好的起点是“框架设计指南”一书 ISBN:978-0321545619

      您还可以配置 resharper 以提供所需的警告/错误,并让所有团队成员使用相同的 resharper 配置,以便他们收到相同的错误/警告。

      不要只做编码指南想要的所有事情,根据情况,有时最好不要坚持下去,但如果您不遵循指南,请务必说明原因。

      无论如何,它们更像是指南;)。

      【讨论】:

        【解决方案4】:

        我认为使用 FxCop 更有用,因为它是由 Microsoft 提供的,所以还有什么比 Microsoft 更真实的。 http://msdn.microsoft.com/en-us/library/bb429476(v=vs.80).aspx

        【讨论】:

        • FxCop 在 TFS 2010 中作为代码分析得到支持,这使得在构建服务器上检查您的样式指南变得更加容易。
        【解决方案5】:

        我需要检查更一致的参考来选择正确/最佳的参考。有没有这样的资源可以“定义”正确的约定?

        这些问题无法回答。参考文献不能帮助您“选择正确的”。就其本质而言,约定不具有“正确性”属性 - 我们使用约定来任意决定对那些没有正确答案的问题采用一致的方法。

        如果您想在此处遵循 StyleCop 的指南,您可以配置 ReSharper 以停止抱怨使用 this。这是在ReSharper | Options | Code Inspection | Inspection Severity - 或者,我相信,有一个特定的“StyleCop for ReSharper”插件可以为你处理这个问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-08-04
          • 2015-04-22
          • 1970-01-01
          • 2018-08-02
          • 2011-06-26
          • 1970-01-01
          • 2017-07-14
          相关资源
          最近更新 更多