C#概述。大括号或地区

时间:2009-07-21 04:02:28

标签: c# code-formatting

我正在维护一个大型的asp.net应用程序。

我的目标是识别为响应特定故障单而添加的行。虽然可以使用我们的SVN,但我想把它放在代码中。因为这些变化对于代码的第一次读者而言看起来很奇怪。

因此哪种概述方法更适合此目的

{
//response to ticket #xxxxx
...
...
..
}

OR

#region response to ticket xxxxx
..
...
..
#endregion

或者是否有更适合此

的其他方法

5 个答案:

答案 0 :(得分:13)

在两者之间,绝对使用评论 - 它们非常灵活。区域对这种事情没有好处 - 如果多个票证需要重叠的代码更改怎么办?这在较长的评论中很容易解释。

但是,无论如何,我都反对在评论中提出这种信息。实际上,没有人会偶然发现一年前编写的代码,并查看机票。代码应该是不言自明的,并且在非常奇怪的情况下,代码应该描述代码实际上做什么,而不是原因。为了解决您对新读者的特殊关注 - 您的同事不需要证明为什么代码是这样的。他们会认为这是出于某种原因,并且在进行其他更改时将始终尝试维护现有功能。这是基本的职业行为。

如果有人需要历史信息,您的变更集应与故障单#相关联。有一个理由列表,说明为什么它们存储在每个文件中的方式。它存储在代码库的外部 - 在源代码控制或其他存储库中。

根据我的经验,将票号放在代码中通常是不良做法的症状。它表示偏离设计而不是固定设计。一个票号说“这就是代码 的方式,这就是现在的方式。”代码库不应该反映他们自己的历史 - 重要的是他们现在的工作方式

答案 1 :(得分:1)

对选项1的响应:为故障单添加注释会降低代码的可读性。我认为(我的公司鼓励这样做)当您签入故障单时,您还应该更准确地记录该部分代码,但同样,添加故障单号可能会让您感到困惑。

对选项2的回应:区域用于将具有相似目的的功能组合在一起,因此我也不建议使用此选项。

建议选项:使用///评论功能的标准并添加一个这就是改变的内容。元件。这种方式修复不会破坏正常的可读性,但是很容易看到与故障单有关的功能。作为额外的奖励,这种机制是自我记录的,因此这些将自动放入生成的文档中。注意:您可能需要检查是否支持自定义标记。

答案 2 :(得分:0)

尝试一下,看看你的同事的想法。

除了更微不足道的变化之外,你最有可能在你的来源中分散改变 - 所以使用SVN责备/注释将是最好的选择。

答案 3 :(得分:0)

我们使用SVN的JIRA插件直接查看为特定故障单修改了哪些代码文件。

区域可能变得很麻烦,因为可能会使用一行代码来修复两张票。所以,选择第一个//票#

答案 4 :(得分:0)

第一个选项。 “//对票证#xxxxx的回应”

你第一次这样做......

int defaultVal = 12;

对此...

int defaultVal = 13;

如果你决定使用#region范例,你会恨你的生活。一到两行代码修复是常态,我从经验中知道过度使用区域会因为不必要地隐藏数据而混淆视觉流。

最好这样做来隐藏你知道废话的物品。

#region Old Code
//int defaultVal = 12;
#endregion
int defaultVal = 13; //Changed by Ticket:13414

默认情况下,新代码可见,隐藏旧代码。