我为什么将代码垂直对齐(你也应该如此!)

来源:互联网 发布:手机怎样开淘宝店 编辑:程序博客网 时间:2024/06/06 00:11

上周,在HackerNewers上有一个关于Linux内核代码风格的有趣讨论。

在讨论过程中,我发起了一场关于程序员是否应该将代码垂直对齐的小规模圣战。我是完全支持代码垂直对齐的。
下面我来解释原因。

什么是垂直对齐

看看下面这个无关紧要例子。

int robert_age = 32;int annalouise_age = 25;int bob_age = 250;int dorothy_age = 56;

我发现这样更易读。

int robert_age     = 32;int annalouise_age = 25;int bob_age        = 250;int dorothy_age    = 56;

我一眼就能看到bob_age是不同寻常的。我也能轻松地看到这儿有个整数,而不用我挨着挨着看。

这个观点并不是被普遍接受的。所以我将解释一下为什么许多人认为它是一种有用的向导。

理解

编程工作的90%是解决问题。剩下10%工作的90%是理解问题是如何被解决的。

阅读代码和阅读散文并没有太大的差别。我们希望作者清晰地解释他们的参数,而不是在他们额外选的语言中过于啰嗦。

的确,内核代码风格非常强调这点。你如何选择变量名和这片代码所完成的工作一样重要。

考虑下面这行代码。

var thinG=doIt(thestuff,MORE_sTuff); /* LOL! */

即使你对代码库非常了解,那也不是一行非常易读的代码。

var totalBill = apply_tax(initialBill, taxRate);

通过对命名习惯、空格、大写的合理应用,使得这些代码更易读。这意味着某个继承我们代码的可怜虫将花更少的时间猜测这些代码,而将更多的时间花在理解这些代码上。

为什么用等宽字体

正如所有关于旧式风格之争一样,等宽字体和均衡字体之争同样非常激烈。
一些异教徒告诉你,均衡字体是最好的(请忽视这些异教徒)。

最终,可归结为易读的。你发现最能帮你理解代码的是什么?这也是为什么IDEs有颜色主题。因此你能一眼看出“yoo”是否是一个函数、一个常量、一个变量、还是一句注释。任何能帮你快速理解代码的东西都是好东西。

电子表格如此流行的原因之一就是纵队能帮助阅读。你能快速的扫描纵队,并且如果有一行不同的话,你能注意到它。

我们没有这样的工具

有趣的是,在HN讨论中,最大的质疑不是关于垂直对齐是否有用,而是关于这样的工具如此至少。

“这破坏了diff的易读性和可用性” 。比如说你改变了单个常量,你想快速追踪Bug。如果是水平对齐的话,diff可能包含许多变化的行,掩盖了关键的行。 有一些忽视空格的变通方案,以及基于单词的 diff,不过诉我直言,没必要那么麻烦。”——Andreas van Cranenburgh

。。。以及。。。

“比方说,你有50行的赋值语句,你按照最长的那个来对齐,如果你增加一行代码,就得更新50行。我已经遇到过这些情形了,每当那时候,我就明白了,不要那样对齐值是多么地重要。”——scollway

这些争论在某些方面是很有意义的。但说到对更好工具的需求,我推荐Elastic Tabstops,它能自动对齐代码块。
By  Nick Gravgaard
我们的工具能很容易适应这种工作方式,计算机能为我们做重复和无聊的工作,CPU周期是如此的廉价,以至于我们可以“浪费”在使我们的代码更易读上。

在Linux内核中有大量垂直对齐的例子,来使得代码更加容易理解。

垂直对齐并不适合所有的情况,但对快速确定数值,它的可读性是无与伦比的。

编程是我们表达思想的一种创造性媒介。如果我们的工具使得这些思想更加难以理解,那么该作出改变的是工具,而不是我们!

原文地址,请点这里。
由于本人才疏学浅,文中难免出错,还望各位不吝赐教!

0 0
原创粉丝点击