Coding style 为什么有这么多缩进不好的代码?

Coding style 为什么有这么多缩进不好的代码?,coding-style,indentation,readability,Coding Style,Indentation,Readability,我越是浏览非Python语言的开源项目的代码,就越意识到许多程序员似乎不相信正确的缩进。(我不会特别提到任何项目,以避免任何人过于个人化地看待这个问题。)通常代码是缩进的,但在某种程度上与标准样式完全不同,这让我发疯,尤其是在旧的/粗糙的代码中。我注意到,当我用类似C的语言编写时,我倾向于正确缩进,就像我用Python编写时一样虔诚,除了调试代码之外,我真的很想突出它。考虑到使用现代IDE修复不正确的缩进是多么容易,不将缩进与大括号保持同步的一些基本原理是什么?大多数情况下,在我使用的源代码库中

我越是浏览非Python语言的开源项目的代码,就越意识到许多程序员似乎不相信正确的缩进。(我不会特别提到任何项目,以避免任何人过于个人化地看待这个问题。)通常代码是缩进的,但在某种程度上与标准样式完全不同,这让我发疯,尤其是在旧的/粗糙的代码中。我注意到,当我用类似C的语言编写时,我倾向于正确缩进,就像我用Python编写时一样虔诚,除了调试代码之外,我真的很想突出它。考虑到使用现代IDE修复不正确的缩进是多么容易,不将缩进与大括号保持同步的一些基本原理是什么?

大多数情况下,在我使用的源代码库中出现的这个问题都是由于混合了制表符和空格。在一个人的编辑器中,每4个字符设置一次制表位,看起来不错,但在另一个人的系统中,有2到8个空格制表位,看起来很糟糕。你可以随意重新排列这些数字;有些文件不管怎样都是乱七八糟的。更改间距对于合并来说是一个巨大的痛苦,因此它永远不会被修复。

如果您使用php编码,很容易出现“缩进不良”的html,我想说的是,php的缩进要比它吐出的html整齐更重要。

除了以下两点之外:

  • “适当的”缩进是一个惯例和语言结构的问题
  • 如果源代码管理的签入只包括更改一组行的缩进,那么在没有事先咨询的情况下,很可能会看到非常糟糕的结果

也许只是那些程序员的“适当缩进”的想法与你的不同?也许你的代码在他们看来像是一堆乱七八糟的缩进?说真的,每个程序员似乎都有自己的“正确”缩进概念,并且有一种奇怪的倾向,即抨击别人的缩进样式是“错误的”。从互联网诞生之初(以及更早),缩进就一直是火焰之战的一个突出话题。无需向火焰中添加更多燃料


总而言之,你使用哪种风格相对来说并不重要。更重要的是在整个项目中始终使用相同的缩进样式。最常见的混乱始于团队中的每个程序员试图使用自己的风格并将其强加于团队的其他成员。其结果是一个丑陋的混乱的混合和不适合缩进风格,使人们疯狂。这就是为什么为每一个拥有超过几个程序员的项目建立编码标准是很重要的。我重复一遍-选择什么编码标准并不重要,一致性很重要。

为什么人们不能正确着装?为什么人们烹饪时不使用适量的大蒜?为什么每个人都听奇怪的音乐?你的问题假设一个权威定义了正确性,我还没有看到

除此之外,我确实喜欢在整个文件中格式一致的代码。如果您使用1个制表符或3个空格,只要您始终使用,我就不在乎。同一行上的大括号或自己的大括号相同,不必在意,只要保持一致即可


我个人使用VS,它可以为我自动格式化所有内容,我对默认规则集非常满意。

人们普遍认为,编码风格是“个人选择”的问题,一种风格和另一种风格一样好。我认为这不一定是真的。最近为的一篇文章(仅在线提供给会员)建议,可以将各种快速阅读技术应用于代码布局,以使其更易于阅读和理解。毫无疑问,关于人类获取信息的方式有大量数据,但本文是我第一次看到将其应用于代码布局


可能有相当多的信息表明某些代码布局更适合人类阅读和理解,但我所看到的(许多)论据都没有提到这样的信息,通常涉及到捍卫人们已经习惯的样式。

然而,缩进不好总比用意不好好……这是个多么愚蠢的问题。人们懒惰、匆忙、没有受过教育,不管怎样。你能在没有负面价值判断的情况下问这个问题吗?“凹凸不平”并不是一件客观的事情。这是你个人的判断。请试着从问题中删除这个观点。+1:源代码中的制表符是个糟糕的主意,除非每个人都使用相同的制表符间距。这在开源项目中是不可能的,它只是将两者混为一谈,这是一个问题。一致地使用制表符实际上是理想的,因为这样每个人都可以设置缩进实际缩进的距离。但这太不切实际了,我还是不使用标签。我不喜欢标签。有很多工具没有可调整的标签间距,而8空间标签是荒谬的,即使使用宽屏显示器也是如此。事实上,一些工具强制使用8个空间标签是对这些工具的控诉,而不是标签本身。这就像批评C,因为它只允许八个字符的名称。@Groky-当缩进关闭时,我总是抱怨。我的同事听腻了我的话。虽然你可能想传达的信息很好,但请注意你的态度和用词选择。当你的表情看起来很粗糙时,你的帮助可能比你想象的要小得多。-1…跳到别人身上做一些相当无害的观察,并称他们为“f'ed up”和“不宽容”已经有相当一段时间了。而且,是的,有一些微妙的风格差异,但我认为每个人都同意缩进应该在文件中始终保持一致。“我已经看过足够多的项目,这些项目不足以让我想到这个问题。@亚当·罗宾逊:我没有攻击任何人,也没有指名道姓任何人。我只是做了我自己的“我”