1
21
我将其强制执行到某一点上,但if语句的计算结果要么返回要么继续循环则有一些小的异常。 所以,按照我的标准,这是正确的:
像这样
但是规则是要么返回,要么继续,并且都在同一行上。否则,一切都要用大括号。 这种推理不仅是为了有一种标准的方式来做,而且是为了避免你提到的评论问题。 |
2
22
我能提供的最好的反驳理由是,空间占用的额外行减少了一次可以看到的代码量,并且一次可以看到的代码量是发现错误的容易程度的一个重要因素。我同意你给出的包括括号的原因,但是在C++的很多年里,我只能想到一个结果,当我犯了一个错误的时候,它在一个我没有足够的理由跳过括号的地方。不幸的是,我不能告诉你看到这些额外的代码行是否有助于实践。 我可能更偏向于这一点,因为我喜欢在同一缩进级别上匹配大括号的对称性(以及所包含语句的隐含分组作为一个执行块),这意味着添加大括号 全部的 时间给项目增加了许多线条。 |
3
11
我认为这条规则太过分了。严苛的标准并不能造就优秀的程序员,它们只是降低了一个懒汉将导致混乱的可能性。 您给出的示例是有效的,但它们比强制使用大括号有更好的解决方案:
有两种做法可以更好地解决这一问题,请选择一种:
1)评论
与任何其他多行语句(例如具有多行的赋值,或多行函数调用)一样:
2)前缀
不,你不是;代码的工作原理是一样的,但很难阅读。修复压痕。选择标签或空格,并坚持使用它们。 不要混用制表符和空格来缩进。 许多文本编辑器会自动为您修复此问题。 编写一些python代码。这样至少可以改善一些不良的压痕习惯。
此外,结构如
冗余大括号(和括号)是视觉混乱。视觉混乱使代码难以读取。代码越难阅读,隐藏错误就越容易。
强制使用大括号无助于在上面的代码中找到错误。 另外,我是“每一条规则都应该说明原因”学校的订阅者,或者达赖喇嘛所说的“知道规则,这样你就可以适当地打破它们。” |
4
9
我还没有让任何人想出一个不总是使用大括号的好理由。 好处远远超过了我听过的任何“感觉很难看”的理由。 编码标准的存在使代码更容易阅读和减少错误。 这是一个真正有回报的标准。 |
5
5
我发现很难与减少错误和提高代码可读性的编码标准争论。一开始可能会让一些人觉得难看,但我认为这是一个完全有效的实施规则。 |
6
5
我站在支撑应根据压痕匹配的地面上。
至于您的两个示例,我认为您的可读性稍差,因为查找匹配的右括号可能比较困难,但在缩进不正确的情况下可读性更高,同时允许更容易插入逻辑。没什么大不了的。 即使缩进不正确,if语句也将执行下一个命令,不管它是否在下一行。不将这两个命令放在同一行的唯一原因是调试器支持。 |
7
4
我看到的一个很大的优势是,在有支撑的条件和循环中添加更多语句更容易,并且在开始时创建支撑不需要额外的击键。 |
8
4
我个人的规则是,如果是一个非常短的“如果”,那么把它全部放在一行上:
一般情况下,只有在连续出现大量这样的假设时,我才使用这个。
不过,这种情况并不经常出现,否则,我总是使用大括号。 |
9
4
目前,我和一个按照这个标准生活的团队合作,尽管我抵制它,但为了统一起见,我还是遵守了这个标准。 我反对的原因与我反对禁止使用例外、模板或宏的团队的原因相同: 如果您选择使用一种语言,请使用整个语言。 如果括号在C和C++和Java中是可选的,按惯例对它们进行约束会显示出对语言本身的一些恐惧。 我理解其他答案中描述的危险,我理解对统一的渴望,但我不同情 语言子集 除非有严格的规定 技术原因 例如,对于某些不适应模板的环境,唯一的编译器,或与C代码的交互,排除了广泛使用异常。 我一天中的大部分时间都是审查初级程序员提交的更改,而出现的常见问题与括号位置或语句结束在错误位置无关。危险被夸大了。我宁愿把时间花在更多的物质问题上,而不是寻找编译器乐意接受的违反规则的地方。 |
10
4
一组程序员能够很好地遵循编码标准的唯一方法是将规则的数量保持在最低限度。 平衡收益和成本(每一个额外的规则都会混淆和混淆程序员,在某个阈值之后,实际上会减少程序员遵循任何规则的机会) 因此,要制定编码标准:
另外,我对支撑的立场是:如果“if”语句或其内容都是一行,那么可以省略支撑。这意味着,如果您有一个包含一行注释和一行代码的if,那么内容需要两行,因此需要大括号。如果if条件跨越两行(即使内容是单行),则需要大括号。这意味着您只需在一些琐碎、简单、易读的案例中省略大括号,而这些案例在实践中从未犯过错误。(当语句为空时,我不使用大括号,但我总是在注释中明确指出它是空的,并且故意这样做。但这与另一个主题有着不同的界限:在代码中要明确,这样读者就知道你的意思是一个范围是空的,而不是电话铃响,而你忘了完成代码) |
11
3
许多语言都有这样一个语法行程序(我特别考虑Perl)来处理这种“丑陋”。比如:
可以使用三元运算符编写为三元:
和
可以写为:
然而,在没有这种“糖”的语言中,我肯定会包括大括号。正如您所说,它可以防止不必要的bug侵入,并使程序员的意图更加清晰。 |
12
3
我并不是说这是不合理的,但是在用类C语言编写代码的15多年中,我没有一个遗漏大括号的问题。在理论上,评论一个分支听起来像是一个真正的问题——我只是从未在实践中看到过它的发生。 |
13
3
始终使用大括号的另一个优点是,它使搜索和替换以及类似的自动化操作更加容易。
例如:假设我注意到
将成为
更复杂的regex在这个特定的情况下可以工作,但是我发现能够使用基于regex的搜索和替换、一次性Perl脚本和类似的自动代码维护非常方便,所以我更喜欢一种不会使其变得不必要复杂的编码风格。 |
14
3
我不同意你的论点。就我个人而言,我不知道有谁曾经“意外地”在
|
15
1
以下是我过去一直遵守的不成文的规则。我相信它提供了可读性而不牺牲正确性。它基于这样一种信念:在相当多的情况下,短格式比长格式更易于阅读。
当您只需说以下内容时,无需以详细的方式对其进行标准化:
|
16
1
我认为大括号的重要之处在于它们非常明确地表达了程序员的意图。你不必从缩进中推断出意图。 这就是说,我喜欢古斯建议的单行返回和继续。它的意图是显而易见的,而且更清晰,更容易阅读。 |
17
1
如果您有时间通读所有这些内容,那么您有时间添加额外的大括号。 |
18
0
为了可维护性,我更喜欢在单行条件中添加大括号,但是我可以看到没有大括号的情况下是如何变得更干净的。这并不困扰我,但有些人可能会被额外的视觉噪音关掉。 我也不能提出更好的反驳。对不起的!;) |
19
0
对于类似的事情,我建议您为您的IDE的自动格式设置一个配置模板。然后,每当您的用户点击alt-shift-f(或者您选择的IDE中的任何按键),就会自动添加大括号。然后对每个人说:“去改变你的字体颜色,PMD设置或其他。不过,请不要更改缩进或自动大括号规则。” 这就利用了我们可用的工具,以避免争论一些真正不值得用在氧气上的东西。 |
20
0
依靠 上 语言 对于单行条件语句或循环语句,使用大括号不是必需的。实际上,我会删除它们以减少代码行数。 C++:版本1:
版本2:
C:版本1:
版本2:
根据您的观点,版本1或版本2将更易于阅读。答案是 主观的 . |
21
0
真的。 没有人 意识到 dangling else problem ?这基本上是 这个 总是使用大括号的原因。 简而言之,您可以对else语句使用令人讨厌的模糊逻辑,尤其是当它们被嵌套时。不同的编译器以自己的方式解决歧义。如果你不知道自己在做什么的话,去掉牙套可能是个大问题。 美学和可读性与此无关。 |
Alex Pander · cleaner代码的嵌套命名空间[已关闭] 6 年前 |
Jamil Noyda · 导入模块的最佳方式Python[复制] 6 年前 |
Samselvaprabu · 我们是否需要不惜任何代价避免重复? 6 年前 |
user9549524 · 基于一列的值从二维矩阵中提取值 6 年前 |
MedAl · 不使用try/catch处理异常 6 年前 |
Declan McKenna · 特殊情况模式在Swift中是否多余? 6 年前 |