使用垂直空白

Eth*_*man 12 language-agnostic whitespace literate-programming

我在这个问题上的意图不是迂腐,而是探索一个被忽视的重要主题轴(空白的使用).关于水平空白的使用,有条件的缩进,if和括号之间的空格等,已经引起了很多争论和关注.事实上,这个问题被认为是如此重要和有争议,以至于一些公司不仅有规则它的标准,但有些公司甚至有规则禁止它的讨论.

考虑到水平空白的状态,为什么对垂直空白的讨论是如此死的问题呢?为什么x比y更重要?几天前,我注意到当我阅读代码时,我不经思考地经常调整语句的垂直分组.现在已经阅读了其他人的代码,着眼于垂直空白,我注意到了几个模式,所以我问stackoverflow:

  • 您对垂直空白应用了哪些硬性规则和软规则?
  • 是否存在通常被认为非常糟糕或非常好的实践的垂直空白用途?
  • 您是否发现阅读代码中包含"正确"的垂直空白有助于理解它?
  • 除了印刷工和我以外的其他人吗?

g .*_*g . 18

我在代码中查看垂直空间,就像我在书面散文中查看段落一样.正如段落意在将具有共同点或想法的句子组合在一起时,相关的行应该组合在一起.

总体目标是提高代码的可读性.就像没有任何段落的文章一样难以阅读,所以代码没有任何垂直空间.就像散文一样,在构成太短或太长的段落之间存在平衡.但最终,它主要归结为个人风格和偏好.

  • 为"段落"的想法+1.我们被教导将代码行视为句子(具有对象,动词等),但这个想法通常不会向上扩展. (3认同)

Mat*_*ell 6

我认为最重要的事情之一是将逻辑步骤组合在一起,例如:

foo.setBar(1);
foo.setBar2(2);
foo.writeToDatabase();

bar.setBar(1)
bar.setBaz(2);
bar.writeToDatabase();
Run Code Online (Sandbox Code Playgroud)

这样,无论如何,代码更容易阅读,并且更具描述性.


Mac*_*cha 6

如果一组语句在逻辑上相关,我会在之前和之后给它一个空行.如果我需要稍后将其重构为函数,这种分离会有所帮助.

至于双空白行:如果某些东西是那么明显,你应该考虑将其作为一个功能.