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

From: techug.com

在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年代的产物,找一个更好的代码编辑器吧。

标签