我在一个拥有大约10名开发人员的团队中工作。一些开发人员有非常严格的格式需求。我想找到一个漂亮的打印机,我可以配置这些规范,然后添加到构建过程。通过这种方式,无论其他人在从源代码控制中拉下格式时有多么糟糕,它都会显得可以接受。
答案 0 :(得分:1)
最简单的解决方案是团队领导要求格式并且每个人都使用它。 VS默认值非常好。
杰夫阿特伍德在Stack Overflow上向我们这样做了,当我第一次反叛时,我克服了它:)让一切变得更加轻松!
答案 1 :(得分:1)
编码标准绝对是我们所拥有的。我所谈论的编码格式是由一个头发花白的建筑师施加的,可以说,他的方式设置非常特别。让我们假装我们无法解决人为因素。我一直在寻找一种规避整个人类过程的方法。
视觉工作室默认情况下不能很好地解决换行问题。我只是把这条线切碎了,但是....
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#工具链。
答案 2 :(得分:1)
您的问题是创建NArrange(测试版)的主要目的。它允许重新格式化C#代码,您可以使用一个通用配置文件由整个团队共享。由于它的重点主要是重新排序类和控制区域中的成员,因此它仍然缺少许多必要的格式化选项(尤其是在成员代码行中的格式化)。
正常使用方案是每个开发人员在签入之前运行该工具。我不知道任何人运行它是他们构建过程的一部分,但没有理由你不能,因为它是一个命令行工具。我想到的一个想法是在文件上运行NArrange作为预提交步骤的一部分。如果签入的原始文件内容与源存储库服务器上的NArrange格式化输出不匹配,则开发人员不会重新格式化规则,并且可能会引发签入错误。
有关详细信息,请参阅Using NArrange to Organize C# Code上的CodeProject文章。
答案 3 :(得分:0)
我是Jarrod的第二个回答。如果您有2个开发人员具有相互矛盾的编码偏好,那么让团队的其他成员投票,然后让老板支持多数决策。
此外,尝试自动应用这样漂亮的打印机的问题在于,总会出现例外情况,即您的一揽子编码标准不是最佳或最具可读性的解决方案,并且您将通过压缩它们而失败。自动化工具。
编码标准就是标准。他们不称他们为编码法或编码规则,这是有充分理由的。