1

代码采用这种形式对于可读性有多重要:

public void DoStuff()
{
    var v = new Object();
    v.PropertyID = "abc";
    v.Type = "abc";
    v.Style = "abc";
    v.SetMode(Mode.Abc);
    v.Draw();
}

对比

public void DoStuff()
  {
    var v = new Object();
        v.PropertyID = "abc";
        v.Type = "abc";
      v.Style = "abc";
       v.SetMode(Mode.Abc);
   v.Draw();
    }

我最喜欢第一种风格,它让事情变得容易阅读,你会如何温柔地引导人们走向前者并远离后者?或者你不会?

4

9 回答 9

2

人们真的编写看起来像后者的代码吗?这是可维护性的噩梦。

我会争辩说,您的代码格式约定是什么并不重要 - 更重要的是您始终遵循它们。前一个示例不一致,因此不可读且不可维护。

如果你在引导人们实现一致性方面遇到困难,让他们想象在一年内回去维护高度不一致的代码。

于 2009-05-15T20:01:53.213 回答
1

格式非常重要,但不是必需的。如果我看到像后者这样的代码,我往往会有点生气。如果您花时间编写代码,请确保您花时间正确格式化它。

于 2009-05-15T19:59:19.243 回答
1

如果是我的代码,我会这样做:

public void DoStuff()
{
    var v = new Object();

    v.PropertyID = "abc";
    v.Type       = "abc";
    v.Style      = "abc";

    v.SetMode(Mode.Abc);
    v.Draw();
}

这样就很清楚哪些行是属性分配,哪些是方法调用。

我也同意 Jamie 的回答,他说“格式非常重要,但不是必需的”。重要的是格式还不错,不会影响其他人的阅读能力。大多数时候,我不相信少量额外的制表符或换行符会对称职的程序员产生巨大的影响。

于 2009-05-15T20:11:44.767 回答
0

在第二个示例中,大括号的缩进不同。

间距对我阅读代码很重要。如果您在我的公司编写代码 - 我可能不得不在某个时候阅读它。如果您不格式化代码 - 我将使用自动格式化程序来获取我需要的内容。

于 2009-05-15T20:01:24.323 回答
0

在团队中工作时,风格至关重要。所以不管你选择什么风格,只要确保每个人都同意它……然后执行该协议。将您的 IDE 设置为自动格式化您的代码.. 并确保每个人的 IDE 设置相同。

于 2009-05-15T20:02:27.940 回答
0

如果你想善良,请给他们 Code Complete 阅读。如果您想变得刻薄,请在他们的代码中引入像这样的微妙错误:

if (x==y);
   DoSomething(); else
DoSomethingElse();
while(Whatever)
SomeFunction();

(如果他们在不到一天的时间内发现了这个错误,那么你就不够巧妙了。)

于 2009-05-15T20:03:24.270 回答
0

我更喜欢你的间距,尽管我会做一些不同的事情。我相信您最重要的问题是如何说服某人您的方法是最好的:代码格式可能非常主观。有些人反对,因为它需要太多时间才能做到正确。其他人反对,因为团队没有任何编码标准。一些反对,因为感觉它被塞进了他们的脖子。

最好的方法是与您的团队合作,就您的特定方法是最佳实践达成共识。如果您是牵头人,或者您是个人贡献者,情况就是如此。

一旦团队共识被普遍接受(它可能不是普遍的),那么我发现代码审查是确保遵循团队实践的最佳场所。我建议你会发现同伴压力是鼓励其他人遵循公认的最佳实践的最有效方式。圈养往往是真实的。在没有共识的情况下,一个人很难在团队中推动这种事情。

这是我的一些相关 StackOverflow 答案

于 2009-05-15T20:05:51.643 回答
0

正如其他人所说,第一个例子是规范;第二个与它不同。

此外,请确保处理同一组文件的每个人都对“选项卡”具有相同的约定。最好将其定义为多个空格,并确保每个人的文本编辑器和 IDE 都同意。

当三四个人在同一个 SVN 存储库中工作并使用不同的间距约定编辑每个文件时,这会很烦人。

于 2009-05-15T20:21:24.523 回答
-1

第二种方式并不能很好地标记。躲开它。

我也认为人们倾向于对这样的格式感到厌烦。一个月后会有另一个人出现并想要这种格式

public void DoStuff()
  {
    var v                = new Object();
        v.PropertyID     = "abc";
        v.Type           = "abc";
        v.Style          = "abc";
        v.SetMode        (Mode.Abc);
        v.Draw           ();
  }

这变得非常愚蠢,而且很难处理。

如果人们这样编码,请质疑他们的推理和编程能力。

于 2009-05-15T19:59:55.747 回答