Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 承包商更改代码样式_C#_Coding Style - Fatal编程技术网

C# 承包商更改代码样式

C# 承包商更改代码样式,c#,coding-style,C#,Coding Style,我目前在工作中支持一个应用程序,该应用程序最初由一个四人小组编写,但现在只剩下我一人了。我们最近请来了一个承包商,在我忙于其他事情时,他来研究一些性能问题 虽然承包商似乎在性能方面做得很好,但他们也经历了大量的代码,用他们个人的偏好取代了原有的风格 不幸的是,我们没有编码标准文档,只有一条遵循c#general rules的一般规则 作为他们所做工作的一个例子,它包括: 删除“var”关键字的几乎所有用法 任何带有if语句和单行的地方,他们都添加了花括号 删除大部分lambda并用更详细的代码

我目前在工作中支持一个应用程序,该应用程序最初由一个四人小组编写,但现在只剩下我一人了。我们最近请来了一个承包商,在我忙于其他事情时,他来研究一些性能问题

虽然承包商似乎在性能方面做得很好,但他们也经历了大量的代码,用他们个人的偏好取代了原有的风格


不幸的是,我们没有编码标准文档,只有一条遵循c#general rules的一般规则

作为他们所做工作的一个例子,它包括:

  • 删除“var”关键字的几乎所有用法
  • 任何带有if语句和单行的地方,他们都添加了花括号
  • 删除大部分lambda并用更详细的代码替换它
  • 更改方法签名,使每个参数位于单独的一行而不是一行
我们也实施TDD政策,但测试覆盖率非常低,尤其是性能特定部件的测试覆盖率非常低,留下的关于他们所做更改的文档非常少,并且由于他们的签入评论没有特别的帮助,并且实际的功能更改在一系列“调整”中丢失,这使得测试变得更加困难

我该如何与承包商就此进行沟通?显然,他们没有太多动力去改变它,因为他们没有责任支持这个项目,而且他们似乎不太愿意接受改变

或者我应该在合同的短期内忍受它,然后将所有内容更改回我们以前使用的代码格式吗

创建社区维基是因为这里可能没有一个正确的答案

任何带有if语句和单行的地方,他们都添加了花括号

这一个也是唯一一个可能是有益的

  • 删除“var”关键字的几乎所有用法
  • 删除大部分lambda并用更详细的代码替换它
  • 更改方法签名,使每个参数位于单独的一行而不是一行
这些改变毫无意义

告诉他他无权重新设计代码。你不会为这些活动所浪费的时间买单,他们将不得不利用自己的时间把东西放回去。那应该会让人精神振奋

这些事情应该提前讨论。你应该清楚地说明哪些活动是允许的,哪些是不允许的。不久前,这里还有一个类似的问题,关于一个承包商,他会在代码上写上自己的首字母缩写,包括数据库实体。这是一种不正当的自我推销,在其他人的代码中是没有位置的

还有一种可能是,通过做所有这些事情,你的承包商人为地增加了额外的工作量,从而给你增加了工时

我该如何与承包商就此进行沟通

礼貌地:解释为什么你想尽量减少对源代码的更改


或者,在签入之前对更改进行代码检查:并且不允许签入您不理解/不想要/尚未测试的更改。

问题现在已经发生了,正如另一位所说,这是对您金钱的不合理浪费,而且是完全不礼貌的(就像花括号一样正确)


当然,为了防止将来出现问题,也许有助于解决这一问题,我建议您建立一个实现——至少他们不能不知道自己何时违反了您的规则。

我想我们都知道,看到代码的诱惑是“我不会这么做”。但我们抵制它

我会先和你的老板聊一聊,了解他们对这件事的看法。但首先想到的是,除非你特别要求承包商做这项工作,否则他并没有做他被雇佣去做的事情,不管他认为他可能增加了什么好处。因此,需要对此进行讨论

接下来想到的事情是,不管他们多么好,或者他们的用意多么好,那些在没有与代码所有者讨论的情况下进行大量更改的人都是坏消息。它们会激怒人们,或者更糟糕的是,会引入错误和你必须清理的不可预见的行为。他需要澄清的是,未经他人许可而做这种事是不可接受的

当我在其他代码中看到我不喜欢的东西,这些东西非常严重,值得注意时,我会首先与代码的所有者核实。即使有明显的bug,它也会
这是他们的代码和清理它的决定,不是我的

我是一名承包商(有时),如果我这样做了,我会期望被快速地、无需付款地展示给我。说真的,这个人是你雇来的,应该完全按照他被要求的去做,不多不少。而且,不要担心表现得“好”——承包商不希望许可证能做到这一点。

对我来说,闻起来像是一种解决方案范围内的代码重新格式化,可以通过一种工具中的设置自动/强制执行,如。我认为这是非常不礼貌的,我会要求他不要按“根据我个人喜好重新格式化所有代码”按钮。

执行FxCop-这应该是你的第一道防线。另外,如果您使用源代码管理(如果不尽快实现),请确保使用dev标签(仅在已标记为生成的文件上生成),并且不要授予他在文件上移动标签的权限。通过这种方式,您可以仔细检查他的更改,并在代码符合您的标准之前拒绝为其添加开发标签。他编写的任何代码都不会进入QA,除非你将dev标签移到有问题的版本中,所以他在这方面完全听命于你。请注意,有些商店的沙盒构建不使用单一标签,他们甚至喜欢在沙盒上应用新标签,因此您可能也倾向于这样做。

<