Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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
Coding style 特定间距的代码格式设置的重要性_Coding Style_Code Formatting - Fatal编程技术网

Coding style 特定间距的代码格式设置的重要性

Coding style 特定间距的代码格式设置的重要性,coding-style,code-formatting,Coding Style,Code Formatting,这种形式的代码对于可读性有多重要: public void DoStuff() { var v = new Object(); v.PropertyID = "abc"; v.Type = "abc"; v.Style = "abc"; v.SetMode(Mode.Abc); v.Draw(); } vs 我倾向于最喜欢第一种风格,它使事情更容易阅读,你会如何温和地引导人们走向前者而远离后者?还是不呢?格式非常重要,尽管不是必需的。如果我看到像

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

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


我倾向于最喜欢第一种风格,它使事情更容易阅读,你会如何温和地引导人们走向前者而远离后者?还是不呢?

格式非常重要,尽管不是必需的。如果我看到像后者这样的代码,我会有点恼火。如果您要花时间编写代码,请确保花时间将其正确格式化。

第二种方法并不是很好。避免它

我还认为人们往往会对这样的格式很着迷。再过一个月,另一个人就会出现,想要这种格式

public void DoStuff()
  {
    var v                = new Object();
        v.PropertyID     = "abc";
        v.Type           = "abc";
        v.Style          = "abc";
        v.SetMode        (Mode.Abc);
        v.Draw           ();
  }
这变得相当愚蠢,而且很难处理


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

在第二个示例中,大括号的缩进并不相等


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

人们是否真的编写了类似于后者的代码?那是一场噩梦

我认为,代码格式约定是什么并不重要——更重要的是要始终如一地遵循它们。前一个示例不一致,因此无法阅读和维护


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

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

如果你想友善,给他们完整的代码让他们阅读。如果你想变得刻薄,在代码中引入类似这样的子代码错误:

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

(如果他们在不到一天的时间里发现了这个bug,那么你就没有得到足够的sublate。)

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

最好的方法是与您的团队合作,建立共识,即您的特定方法是最佳实践。如果您是负责人,或者您是个人贡献者,则这一点是正确的

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

以下是我的一些相关答案


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

      public void DoStuff()
      {
          var v = new Object();
      
          v.PropertyID = "abc";
          v.Type       = "abc";
          v.Style      = "abc";
      
          v.SetMode(Mode.Abc);
          v.Draw();
      }
      
      这样就可以清楚地知道哪些行是属性赋值,哪些行是方法调用


      我也同意杰米的回答,他说“格式非常重要,尽管不是必需的。”重要的是格式并不是那么糟糕,它会损害其他人阅读它的能力。我不相信在大多数情况下,几个额外的标签或换行符会对一个有能力的程序员产生巨大的影响。

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

      另外,确保在同一组文件上工作的每个人对“选项卡”的含义都有相同的约定。最好将其定义为多个空格,并确保每个文本编辑器和IDE都同意


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

      我不认为第二个示例是“风格”,它只是看起来像是有人使用了一些随机间距方案。是的,这正是它(在它被Bob编辑之前)。问题是(或者应该是),您如何鼓励某人花时间格式化代码,使其显示为第一种样式,为了下一个人的利益,而不是让格式看起来好像每行上都有随机数量的不同空格。这应该是正确的,只需在Visual Studio中设置默认规则,并在保存之前始终按Ctrl-K Ctrl-D,或者让Visual Studio Power命令为您执行此操作:)问题在于定义正确的含义。我意识到格式对于编译器不是必需的,但我正在考虑下一个必须处理代码的人。。
      public void DoStuff()
      {
          var v = new Object();
      
          v.PropertyID = "abc";
          v.Type       = "abc";
          v.Style      = "abc";
      
          v.SetMode(Mode.Abc);
          v.Draw();
      }