- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
类似问题:Styleguide for C#和 StyleCop: a complete document
好的,所以我正在为我们在 C# 中开发的应用程序在我的工作场所寻找某种样式控制。我最初只是计划制作一个风格指南(通过收集一些现有的风格指南并从中挑选合适的部分),但看起来 StyleCop 可能是一个很好的补充或替代风格指南。
所以,我的问题是:
编辑: 只是一点点背景,我的工作场所有一个“软件部门”,现在才真正成立。有 3 个全职 c# 开发人员,3 个可能接触/使用/更改 c# 代码的开发人员,一些 BA,没有官方测试人员。
最佳答案
在一个使用/维护/执行风格指南的团队,然后在一个使用 StyleCop 的团队工作之后,我的建议是只使用 StyleCop。这有几个原因:
它是编译时强制执行的。对于像风格这样挑剔的东西,这是一个巨大的优势。使用样式手册总是有灰色区域,但没有任何编译器错误。这将风格争论从“这是错误的”/“不,它不是”减少到“我们应该更喜欢哪个”,这是(通常)更文明的争论。
如果您创建自己的风格,则需要有人(或你们所有人)充当人类“风格警察”,这是一项相当痛苦的工作。开发人员(以我的经验)往往不喜欢人们对他们提交的代码进行“风格调整”,并且更不喜欢被告知让他们的代码符合风格。这也很耗时,因为在代码审查期间审查是另一回事(你正在做那些,对吧?)。
StyleCop 带有一组相当不错的默认规则,仅使用这些规则就可以匹配大多数其他 C# 代码库。当我使用我们自己的内部风格手册时,所有的开源代码看起来都很陌生,因为我们使用了注释标题、大写参数、一些匈牙利符号等。但是当我转向带有默认规则集的 StyleCop 强制风格时,一切看起来很眼熟!
创建您的风格意味着您将花费大量时间重新发明轮子,然后在出现边缘情况和争论时维护该轮子。这是一个非零的工作量,并且会浪费很多时间;根据我的经验,开发人员总是争论代码风格。
如果您不喜欢某些默认设置或需要添加 StyleCop 应忽略的缩写,它有一个不错的编辑器来配置您的规则集。
您可以编写自己的规则或使用其他人发布的规则。例如,我们团队中的一些人讨厌尾随空格,所以我包括了 these rules来强制执行。
就替代方案而言,我不知道有任何替代方案能像 StyleCop 一样无缝。我应该指出,我只将它与 Resharper/Visual Studio 结合使用,所以如果你有不同的环境,那么你的里程可能会有所不同。
关于c# - StyleCop 和/或一般风格指南?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28291330/
我有以下内容,我收集到应该在特定代码行上禁用 stylecop 规则。 [SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules",
我已将以下导入语句添加到 csproj 文件中: 这项工作很好,但是我只希望样式 cop 分析在 Debug 版本上运行,而不是在 Release 版本上运行。我的 Google Fu 今天让我失望
StyleCop 规则 SA1642 坚持要求我的构造函数文档头必须以“初始化...的新实例”开头。 虽然我同意规则本身,但我就是无法让自己接受 StyleCop 强制执行我认为丑陋的拼写。它是用“s
是否有可能让 StyleCop 说这是使用花括号的正确方法? if (request.Query == string.Empty) { return SearchResponse.Empty;
我收到如下屏幕截图所示的警告,我不明白为什么会这样对待。我经常需要“区域化”我的代码。 你觉得怎么样? 最佳答案 虽然这个 StyleCop 规则确实只是一个建议,但我不会禁用它。这些#region
有人根据 IDesign 编码标准定制 StyleCop 规则吗? 最佳答案 你可能想尝试Code Style Enforcer 。它管理基于 iDesign 标准的规则。 我认为您可以为开发时完成的
我在 StyleCop 规则 SA1503 (CurlyBracketsMustNotBeOmitted) 上遇到了困难。 在我的代码中,我经常有一个模式: public void SomeFunct
我想使用 TeamCity 7.1 中的 StyleCop 构建运行器插件来测试我的项目中的 StyleCop 规则。每个项目都有自己的 StyleCop 设置文件,从 Visual Studio 进
我想将 StyleCop SuppressMessageAttribute 添加到某些代码中,但我不想要求安装 StyleCop。 我的项目是否需要引用 StyleCop 二进制文件?如果需要,引用哪
基于几篇好文章,我已经能够成功地创建一些自定义 StyleCop 规则。作为引用,这里列出了一些我发现对这个主题非常有用的文章: How to Implement a Custom StyleCop
我正在寻找设置文件以手动更改设置 - 但找不到。 我按照以下说明安装:http://stylecop.codeplex.com/wikipage?title=Setting%20Up%20StyleC
我正在我的 VS2015 中将 stylecop classic 升级到最新版本 (StyleCop.Analyzers 1.0.0),根据 GitHub 的介绍,我不能再使用 Settings.St
我被要求以如下方式将 StyleCop 集成到我们的 CI 构建过程中: 我们的单个项目文件 (大)解决方案不受影响 我不必使用任何 3rd 方 工具 第一个要求(我还没有完全理解这一点)是因为我们不
是否可以在一个项目中仅对1个文件运行StyleCop? 最佳答案 是的,通过从.cs文件的上下文菜单中而不是从“工具”菜单或项目的上下文菜单中选择“运行StyleCop”。 http://cleart
是否有任何方法可以配置 StyleCop 以忽略属性文档?我只想保留方法、构造函数和类的规则。我知道我们可以通过“包含字段”选项禁用字段。 最佳答案 规则 SA1609 和 SA1610 涵盖属性文档
如何对自定义规则使用抑制? 最佳答案 您可以使用 SuppressMessageAttribute 来抑制违反自定义规则的行为,其方式与对作为 StyleCop 的一部分发布的规则所做的完全相同。例如
我有一个非常简单的问题。是否打算同时运行 StyleCop 和 ReSharper? StyleCop 提供代码分析,但 Re-Sharper 也提供代码分析......它们真的都是必需的吗? 提前致
StyleCop 是一个很棒的视觉工作室小插件。但它不会向您显示实时提示或提供任何自动修复。 随之而来的是 reSharper 和 StyleCop for reSharper,这是理想的解决方案,但
我刚刚将 StyleCop 从 4.7.36.0 升级到 4.7.37.0(后者现在包括拼写支持)。 它在我的本地机器上运行良好。 但是,当它在 TeamCity 中运行时(以前在那里工作过),我现在
我在使用 StyleCop 时遇到了问题,这让我很抓狂。我最近在一台新机器上安装了它,每次我去编辑主设置文件(通过 Visual Studio 或 StyleCop 编辑器)时,我都会收到以下错误:
我是一名优秀的程序员,十分优秀!