C# 重构他人的礼仪';什么是源代码?

C# 重构他人的礼仪';什么是源代码?,c#,refactoring,C#,Refactoring,我们的软件开发团队由一群经验丰富的程序员组成,他们具有各种编程风格和偏好。我们并没有对每一件事都有标准,只是为了防止完全混乱而提供的基本必需品 最近,我碰到了一位同事做的一些重构。我的代码看起来有点像这样: public Person CreateNewPerson(string firstName, string lastName) { var person = new Person() { FirstName = firstName, LastName

我们的软件开发团队由一群经验丰富的程序员组成,他们具有各种编程风格和偏好。我们并没有对每一件事都有标准,只是为了防止完全混乱而提供的基本必需品

最近,我碰到了一位同事做的一些重构。我的代码看起来有点像这样:

public Person CreateNewPerson(string firstName, string lastName) {
    var person = new Person() {
        FirstName = firstName,
        LastName = lastName
    };
    return person;
}
将其重构为:

public Person CreateNewPerson (string firstName, string lastName) {
    Person person = new Person ();
           person.FirstName = firstName;
           person.LastName = lastName;
    return person;
    }
就因为我的同事需要更新我编写的一个类中的其他方法,他也“重构”了上面的方法。为了记录在案,他是那些鄙视和使用与我们其他人不同的括号放置/识别方案的开发人员之一


我的问题是:(C#)程序员重构他人源代码(语义和语法)的礼仪是什么

礼仪应始终在团队层面上进行。因此,请与您的同事讨论这一点,然后与整个团队讨论定义规则

通用规则可能包含不更改代码的内容,如果它仅用于美化和有争议的编码样式。如果有人在将来不得不维持你的课程,那么他通常可以改变任何事情

定义一些基本规则,一些反模式(总是可以由您的同事重构)等等


这样的规则不必非常严格,所以不需要定义大括号或类似的东西的位置。但在这种情况下,其他人认为,没有人应该美化代码。如果你在一件事上发生冲突,在整个团队中讨论,为这种情况创建一个新的规则。

我想这不会让代码变得更干净,只会把其他人的编码风格强加给它。您应该与您的同事讨论这种类型的“重构”是否真的有必要(以及是否真的没有更好的方式让您的同事消磨时间:-)

如果没有编码风格的指导方针/规则,他甚至可能没有意识到这种更改正在引起麻烦


这就是说,这种风格是相当不标准的,就个人而言,我会对一种“重构”感到恼火,这种“重构”不会改变代码的含义,只会在你的脸上留下他的编码风格的印记。我甚至不确定它是否符合重构的条件。相当自私。

他是否为所讨论的项目生成了大部分代码?如果是这样的话,我可以理解他做了什么。当进入一个已经在进行中的项目时,我会尝试匹配代码中已经使用的格式


当然,这可能不适用于你的情况。如果任何一个项目都从你们所有人那里得到了大致相同的贡献,也许可以采纳Mnementh的建议,把这个问题提出来

我认为最重要的是能够表达不同意见并做出承诺。我们都有自己的偏好,但来回改变不重要的事情会浪费每个人的时间

这其中最重要的方面是一致性。您的团队应该决定是否使用类型推断和对象初始值设定项,并写下一些编码准则。

我只想和您的开发伙伴谈谈您想要重构什么以及为什么要重构。只有在达成一致意见的情况下才能重构代码


这将导致讨论,在讨论中,你们很可能都会从对方身上学到一些东西。

我相信,也就是说,代码属于项目,而不是单个工程师。所以,我不介意有人重构我写的东西,只要它符合项目标准。如果项目没有编码标准,那么团队应该定义一些

我不太担心礼貌,而更担心经济问题。每一次代码更改都会带来巨大的成本:

  • 代码更改必须由QA进行测试
  • 代码更改必须由开发人员为其编写测试套件
  • 可能需要记录影响用户体验的代码更改
  • 代码更改会引入bug;这显然是巨大的成本
  • 等等
我不会梦想对任何产品质量代码进行“仅美学”的微小更改,无论它是否是“我的”。这一变化带来的好处远远不能证明其成本是合理的


你可以考虑提醒你的同事,你从事的是编码业务,而不是为了让你发现你喜欢的漂亮代码,而是为了在经济疲软时为你的公司创造利润。你们不是艺术家,你们是工程师,所以要表现得像工程师;所有变更都应以商业目的为依据。

严格遵守标准。如果没有标准,那就是你的问题,而不是其他人可以并且确实更改你的代码


此外,在对代码更改感到不安之前,您需要确定意图。这是恶意的还是无害的更改?

如果我修改的是同事拥有的文件,我会尝试使更改与他们的风格保持一致。这样,即使我们的文件中有一半的字段前缀为“m”,一半的字段前缀为“u”(除其他次要内容外),但至少有一个文件/类是自一致的。

我认为在这个特定示例(即C),您只需遵循Microsoft提供的指导原则即可。与.NET Framework的代码标准保持一致,使得类和代码结构易于阅读

另一件事是VisualStudio会在您键入时自动更正各种格式规则,这会有所帮助。例如,在结束括号或结束语句时


我个人认为,表面重构看起来很难看,会降低可读性,而你的代码遵循.NET惯例。

你应该让它成为一个社区维基。至于礼仪,最好的办法可能是与他对质,让他知道你不喜欢他重构你的代码。你也可以玩得更微妙,还原你的代码,也可以修改他的代码以符合你的风格。虽然好玩