【发布时间】:2009-06-03 14:23:42
【问题描述】:
是否有用于 .NET 源代码文件的标准模板?
我习惯于将标题信息放在 /* */ 标记之间,但 StyleCop 抱怨这些。
【问题讨论】:
-
你在评论里放了什么?带有作者、修订历史等的文件的某种样板文件?
-
是的,我会在标题中包含作者、文件名、版权、修订历史等。
是否有用于 .NET 源代码文件的标准模板?
我习惯于将标题信息放在 /* */ 标记之间,但 StyleCop 抱怨这些。
【问题讨论】:
永远不要将修订历史记录在源文件中,这就是您的源代码控制系统的用途。
至于标题,我建议#region 是一个好主意(因为它是样板,应该从您的关注中删除,除非您正在编辑它,此时它是否是// 或/*.
由于// 更健壮(没有嵌套问题)// 是首选
【讨论】:
只是一个想法,绝不是一个标准(或者就此而言,可能是一个好主意)。您是否考虑过使用属性?例如
[Author("Jonathan Dickinson")]
[Copyright("Copyright (c) Jonathan Dickinson 2009")]
[RevisionHistory(
"jcd: Made the class.",
"jcd: Made the class internal.")]
[License("GPL", LicenseType = LicenseType.CopyLeft)]
// Etc.
class Foo
{
}
有人知道为什么这是一种糟糕的做法吗?
无论如何 - StyleCop 主要是为 商业 项目(通常不做代码头)制作的。换句话说 - 忽略或禁用 friggen 警告。我一次又一次地读到 StyleCop 和 FXCop 太挑剔了。我见过以下格式的标头 cmets。
// <code-header>
// <author>Jonathan Dickinson</author>
// <copyright>Copyright (c) Jonathan Dickinson 2009</copyright>
// <license href="license.txt">New BSD</license>
// <revisions>
// <revision initials="jcd">Made the file and class</revision>
// <revision intiails="jcd">Made the class internal</revision>
// </revisions>
// </code-header>
它具有明显的优势 - 统计数据(就像 Ohloh 所做的那样)和代码库验证会立即浮现在脑海中。
【讨论】: