为什么他需要竖向对齐代码,而你不需要

在Terence Eden的博客里,最近有一篇文章是讨论竖向对齐代码问题的:为什么我要竖向对齐程序代码(你也应该这样做)

其中,它指出,”不好”的代码格式是这样的:

1

而经过“纠正”,代码看起来是这样样子的:

2

出于学习,我在我的代码编辑器里敲入了他的例子:

3

很显然,因为我使用的是一款具有语法高亮功能的编辑器,数字是绿色的,跟其它代码的颜色反差很明显。这样的效果中,我很容易在这些绿色的数字中发现其中有异常的数字。

同样,使用合适的字体,会使得驼峰式书写风格的变量名非常的明显好认;相反,下划线式的命名方式使得屏幕上的代码密度变低,字体变小。

我的代码编辑器还使用了语法高亮功能来强调字距。比如,操作符两边的字距比普通的字距要大很多,这样更容易让人识别。同样,空格符要比普通的字符宽出50%,也是同样的作用。

在Terence的文章里,我想他遗漏了一个常见的问题,我通常会把变量按变量名的字母顺序排列,这样能够避免重复的定义。对于版本合并冲突问题,有一个很好的方法能解决中间新增变量行问题。

编程原子

我想最大的问题来自我们的编程的最小原子是以行为单位的。

看看下面的这个例子,它也是来自Terence的博客,这次是一个函数声明:

extern int SomeDemoCode(int fred,
                        int wilma);

如果我们给这个函数增加一个参数,注意参数两边多出的空白:

extern int SomeDemoCode(int fred,
+                       int barney,
                        int wilma);

diff比较工具将这个函数拆成了3行,这里的合并成功只是个巧合,diff并不知道,这三行中的任何一行单拉出来都不成立。

如果把三行代码放在一行,合并起来会变成这样:

-extern int SomeDemoCode(int fred, int wilma);
+extern int SomeDemoCode(int fred, int barney, int wilma);

长话短说,使用空白控制代码的呈现是70年代的产物,找一个更好的代码编辑器吧。

余下全文(1/3)
分享这篇文章:

请关注我们:

共有 7 条讨论

  1. 微笑的撒旦 对这篇文章的反应是笑死了
  2. 良好的代码风格不应该依赖于编辑器!编辑器只是辅助,而并不是任何时候你都可以访问到强大的编辑器。
    只能说这个作者在程序员这个圈子里面,还是太嫩了。

    1. Emacs对齐默认用tab,单丝最后还是被改成了空白对齐。
      WHY?为了让不同的人使用的不同编辑器看到的内容都是一样的格式!

  3. maogang 对这篇文章的反应是赞一个
  4. keivn 对这篇文章的反应是笑死了
  5. techug 对这篇文章的反应是俺的神呀
  6. Bobby 对这篇文章的反应是笑死了

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注