3

嗨,我有一个简单的问题,我问了 3-4 个不同的人,每个人的答案都不一样。

哪种代码布局更好,用得更多?

只要它是一致的,它真的很重要吗?

在程序员的工作世界中,哪个被视为更好的实践?

例如

一个)

for(int i=0;i<8;i++)
{
    for(int p=0;p<8;p++)
    {
        if(array[i][p]->Equals(String))
        {
                    //Do Stuff
        }
    }
}

或者

二)

for(int i=0;i<8;i++){
 for(int p=0;p<8;p++){
  if(array[i][p]->Equals(String)){
                    //Do Stuff
                }
        }
}

谢谢,蒂姆

4

8 回答 8

1

存在几个已发布的样式指南 - 例如,Google's is here,它要求功能:

ReturnType ClassName::FunctionName(Type par_name1, Type par_name2) {
  DoSomething();
  ...
}

对于块:

if (condition) {  // no spaces inside parentheses
  ...  // 2 space indent.
} else {  // The else goes on the same line as the closing brace.
  ...
}

其他块的类似示例。

所以,看看一些这样的风格指南,从一个有声望的来源中挑选一个你喜欢的,如果有人反对你的风格,就说“哦,我从 X 中挑选的”(其中 X 可能是 Google、geosoft ,或您喜欢的任何其他来源(此处列出了更多来源)。

于 2010-03-04T01:29:00.620 回答
1

在实践中的几乎所有情况下,都有一个明确的答案:使用您正在使用的代码库中当前使用的样式。如果您正在开始一个新项目,请使用当前在由维护您的代码的团队维护的其他项目中使用的样式。

我使用的代码库很大程度上源于 GCC 和其他 FSF 软件,这意味着我所有的项目都使用了单独一行带有“{”的样式。我可以提出为什么“更好”的理由,但这是主观风格的问题。在项目和团队中保持一致客观上更好。

于 2010-03-04T01:32:16.913 回答
0

这完全是主观的。两者都很受欢迎。

于 2010-03-04T01:25:53.997 回答
0

这里没有对错。这取决于您或您的团队/组织的偏好。

就大括号而言,我目前的团队选择了选项 B,但我实际上更喜欢选项 A。

就我个人而言,我建议在“for”和“if”之后增加一点间距,并在选项 B 上增加一点缩进,以提高可读性。但是,这只是我的偏好。

于 2010-03-04T01:31:04.330 回答
0

什么,没有中间立场?只有两个例子,每一个都旨在采取(相对)极端的立场?

显然,您遗漏了一大堆中间示例,其中包含许多略有不同的格式规则。

如果你想不出至少十个以上的变种,你就没有真正付出任何努力。两种变体不足以关注细微差别。

你可以——如果你愿意——偷懒。一个体面的 IDE 将为您格式化。我使用 Eclipse,它为我格式化,这就是我使用的,根本没有考虑它。

您还可以下载和阅读开源代码,并实际模拟您在那里找到的样式。这是一种不那么懒惰的方法,您确实必须阅读其他人的代码。

于 2010-03-04T01:32:40.580 回答
0

我不确定是否有可能提出一个比另一个更好的原因,这些原因并不是完全主观的,而且只对一小部分项目有效。

我喜欢压缩风格,它倾向于使代码更紧凑,因为我喜欢我的函数紧凑并且适合屏幕,所以它很有帮助。

但这会让其他人发疯,而且他们不喜欢看到一个块在自己的线上开始和结束。我明白他们的意思。

通常这没什么大不了的,因为每个开发人员都使用他们自己的设置,我们让源代码控制系统以不可知的格式存储它(哪个并不重要)。

当然是 YMMV。

于 2010-03-04T01:43:10.380 回答
0

正如一些人已经指出的那样,您应该使用代码库或团队已经在使用的样式。

但是,如果您在上大学或从未使用过使用大括号的语言,我建议您将大括号放在自己的行上。我发现新开发人员在将花括号与代码放在同一行时可能会遇到识别丢失花括号的问题。这对于现代 IDE 来说可能没什么大不了的。

于 2010-03-04T01:47:23.337 回答
0

当我年轻的时候,我曾经相信所有这些问题都是见仁见智的,主观的,最好留给个人口味。

随着年龄的增长,我的视力变得越来越散光。如果不进行手术,散光可以使用眼镜或隐形眼镜矫正——但矫正远非完美。

散光使阅读变得更加困难,包括阅读代码。

对于像我这样有散光的人来说,identifiers_with_underscored_spacing阅读起来比IdentifiersWithCamelCaseWordBreaks..

同样,对我来说,单独一行的大括号比与代码共享一行的大括号更容易阅读。

因此,我推荐您提出的第二种样式,因为它更易于访问。

于 2010-03-04T02:09:40.477 回答