当前位置: 首页 > 科技观察

为什么我垂直对齐程序代码,你也应该

时间:2023-03-13 08:30:37 科技观察

最近HackerNews上对Linux内核编码风格进行了热烈的讨论。在讨论进行时,我的一个回复引发了关于代码是否应该垂直对齐的另一场争论。我坚持我的观点!让我解释一下为什么需要垂直对齐。为什么垂直对齐代码?举个简单的例子:introbert_age=32;intannalouise_age=25;intbob_age=250;intdorothy_age=56;相比之下,下面的写法更具可读性:introbert_age=32;intannalouise_age=25;intbob_age=250;intdorothy_age=56;只要一眼,我们就可以看出“bob_age”这个数字是异常的。我可以很容易地认出这些变量都是数字,不需要用眼睛一一比较。这种编码风格没有被广泛接受。所以,我需要解释一下这种风格的一些好处。代码可读性90%的编程活动都是为了解决问题。其他90%用于了解代码如何解决问题。阅读代码与阅读小说没有太大区别。我们希望作者能够清楚地表达他的想法,没有陈词滥调,但同时尊重所用语言的语法。事实上,Linux内核编码风格非常强调这一点。变量的命名与其作用一样重要。看看下面的代码:varthinG=doIt(thestuff,MORE_sTuff);/*LOL!*/即使你非常理解这段代码,也很难阅读它。vartotalBill=apply_tax(initialBill,taxRate);我们可以通过为变量提供有意义的名称、空格和区分大小写来使这段代码更清晰。这意味着下一个接管我们代码的程序员可以更容易地理解它。为什么要使用Monospace字体?关于代码编辑器应该使用等宽字体还是比例字体的争论从未停止过,也永远不会停止,双方各有各的喜好。有些异教徒会告诉你比例字体是最好的-忽略他们。归根结底是为了可读性。帮助我们理解代码的最简单方法是什么?这就是IDE有代码高亮和配色的原因,这样你就可以轻松区分“foo”是函数、变量、常量还是注释。任何能帮助我们理解代码的东西都是好东西!编辑器问题有趣的是,我遇到的许多批评并不是关于代码的垂直对齐有多好,而是关于我的代码编辑器不好。这样做会破坏使用diff比较版本差异的可读性和有效性。比如某个变量只有一行有bug,你可能会改很多行对齐变量,影响查看key修改。也有忽略空白的diff技术,但至少你弊大于利。AndreasvanCranenburgh...和...比如说,你有50行代码要垂直对齐,然后将所有值对与最远的行对齐,并添加距离更大的行,您需要修改50行。我以前遇到过这个问题,后来发现是错误的。滚动他们所说的是真的——在某些情况下。但关键是他们没有使用更好的工具。我记得ElasticTabstops提供的一个技巧——如何自动对齐代码块:合适的工具可以轻松完成这样的任务。计算机天生就是为我们做这些无聊、重复的事情——CPU的工作很便宜,我们可以“浪费”CPU的工作来让我们的代码更具可读性。在Linux内核代码中也有很多例子表明垂直对齐代码可以使代码更易于阅读。垂直对齐代码并非在所有情况下都有效——但对于大多数情况而言,它的好处是巨大的。代码是我们表达思想的媒介。如果您的工具让理解这些想法变得更加困难,那么需要改变的是工具,而不是我们。