2

我在一个有大约 10 名开发人员的团队中工作。一些开发人员有非常严格的格式化需求。我想找到一台漂亮的打印机,我可以根据这些规格进行配置,然后添加到构建过程中。通过这种方式,无论其他人在从源代码管理中删除格式时将格式弄得多么糟糕,它看起来都可以接受。

4

4 回答 4

1

最简单的解决方案是让团队负责人指定一种格式,并且每个人都使用它。VS 默认值非常好。

Jeff Atwood 在 Stack Overflow 上对我们这样做了,虽然我一开始反抗,但我克服了它 :) 让一切变得更容易!

于 2008-11-13T02:56:02.407 回答
1

您的问题是创建NArrange(测试版)的主要目的。它允许对 C# 代码进行可配置的重新格式化,并且您可以使用一个通用配置文件供整个团队共享。由于它的重点主要是对类和控制区域中的成员进行重新排序,因此它仍然缺乏许多必要的格式化选项(尤其是成员代码行内的格式化)。

正常的使用场景是每个开发人员在签入之前运行该工具。我不知道任何人运行它是他们构建过程的一部分,但没有理由你不能,因为它是一个命令行工具。我考虑过的一个想法是在文件上运行 NArrange 作为预提交步骤的一部分。如果签入的原始文件内容与源存储库服务器上的 NArrange 格式输出不匹配,则开发人员没有重新格式化为规则并且可能会引发签入错误。

有关更多信息,请参阅我关于使用 NArrange 组织 C# 代码的 CodeProject 文章。

于 2009-01-07T00:02:37.737 回答
1

编码标准绝对是我们拥有的东西。我正在谈论的编码格式是由一个头发花白的建筑师强加的,也就是说,以他的方式设置并且非常特别。让我们假装我们无法解决人为因素。我一直在寻找一种方法来规避整个人类过程。

遗憾的是,Visual Studio 的默认设置不能很好地解决换行问题。我只是在制作这条线切割风格,但是....

ServiceLocator.Logger.WriteDefault(string.format("{0}{1}"
                                                 ,foo
                                                 ,bar)
                                   ,Logging.SuperDuper); 

格式化visual studio的另一个例子不太热......

if( foo
   && ( bar 
       || baz 
       || apples 
       || oranges)
   && IsFoo()
   && IsBar() ){
   }

Visual Studio 根本不能很好地播放这样的东西。我们目前正在使用 ReSharper 以允许更精细的格式化,但遗憾的是它在许多领域都属于分类。

尽管编码标准很棒,但不要误会我的意思。作为构建过程的一部分,漂亮打印机的目标是获得“完美”的代码,无论人们如何注意或计算他们的空间。

围绕代码格式化的边缘情况非常容易解决,因为它是一个定义明确的语法。

就 VS 默认设置而言,我只能说:BSD 风格或死亡!

所有这一切都让我回到了原点:C# 是否有可配置的漂亮打印机?就像词法分析和解析一样令人着迷,我对制作 YAML C# 工具链感到很满意。

于 2008-11-13T04:56:42.040 回答
0

我赞同 Jarrod 的回答。如果您有 2 个开发人员的编码偏好相互冲突,那么让团队的其他成员投票,然后让老板支持多数决定。

此外,尝试自动应用这样漂亮的打印机的问题在于,总会有例外情况,即您的一揽子编码标准不是最佳或最易读的解决方案,并且您会因使用自动化工具挤压它们而失败。

编码标准就是这样,标准。他们不称它们为编码法则或编码规则,这是有充分理由的。

于 2008-11-13T03:22:11.310 回答