空格大辩论 - 解决了世界上最重要的争论:for 语句的周围是否需要额外的空格

星期五

“我的天,你这个蠢蛋!你这是疯了吗!?我已经为了类似这种情况的代码准备了风格指南。在这里争论这个问题是个错误。这会伤害你的自尊的。”

我在Chrome中打开了一个新标签页,点击了书签工具栏中的风格指南链接。以前,我属于有勇无谋 — 毫无经验,不备而战。不过我最近学会了如何应对这种人身攻击。

“我告诉过你。这不是Java标……”

我尽可能让他住嘴。目前,还不值得争吵。我还拥有回答的权利。我用简单粗暴的方法诉诸权威,再来调整空格。

页面加载,我们也向屏幕靠地更近了。胜利就在这个网站的某处。我带着压制别人的洋洋得意。

但是网站上却并没有提到。恐慌随之而来。没有权威代码,代码风格的争论根本停不下来。我不能让另一个Tab与空格大战重演。我们在这种问题上的摩擦只有天知道。

我疯狂地在Google上搜索相关词条“Java loop style guideJava循环风格指南),” “java white space guideJava空格指南),” “Java white space guide for loopJava循环的空格指南)” 而返回的结果毫无帮助。这种问题真的是太小了,连整个互联网上(三次Google搜索)都找不到一条简单的意见吗?不。必须要解决它。如果别人没解决,那就由我来解决。

下班时间很快来临,所以我们决定将争论留到下个星期。但是在变成文明的理论之前,我的对手给了一个恶狠狠的威胁:“我这周末会看得更仔细,”他说道。

真操蛋。

星期六

我不能放松。我坐在这儿的时候,他会比我更强。如果我不准备,星期一我将彻底被击败——抄送给整个团队的邮件真的将变成对我的公开“处刑”。我要阻止它发生!老天,我找到了一些东西!没有任何人能辩驳的东西。但那是什么呢?

想想,老兄!想想!我重新搜索 “Java style guide”一页页的深入搜寻,时间飞快,我却并没有离答案更近。但我突然醒悟过来:根本就不需要什么风格指南。我只要动一动指头就能得到整个Java源代码。答案近在眼前。

我快速打开了java文件夹并打开了我看到的第一个源文件。我快速的扫过代码寻找第一个循环。找到了!

就是它!银弹一直就在我眼前。我靠在椅子上,沉浸于胜利之中。可怜的人儿啊。他完全不知道星期一等着他的是什么。然而,当屏幕底部另一个循环映入眼帘中时,我的愉悦感迅速消退。这又是个啥?

“这空格……”

我向右滚动了一点。

“哦不……”

绝望

第一个文件带来的就是个悲惨的故事。我拉到文档底部的那一刻,比分是残忍的4比1,对手的胜利。但是我并没有动摇。“只是个特例,”我说服自己。只是一个怀有不满的雇员工作成果。那只是一个不关心良好风格的疯子罢了。只是无效数据罢了。该死,我们一定会把这个家伙的工作用作统计数据的。那只会掩盖“隐藏的”真正结论。

我需要更加“相关”的数据,但是手工检查显然不可行。Java源文件的数量出人意料地多。

于是我写了统计用的Python代码:

 

我将打开每个源文件,找出每个循环片段,最终找出更符合“Java标准”的行,我作了一个深呼吸。当我按下键盘时,争论永远地结束了。结果是:

 

“天哪!”我感觉到这个任务的重要程度迅速降低。发现的唯一事实是我可能站在历史的错误一端。这就是狠狠地被击败了。86%的Java代码使用了带空格语法。只有14% — 我的同盟们 — 有使用“良好风格”的意识。

暴风逼近地平线,但是我仍然拒绝接受事实。我的意思是,我可是个明事理之人。我可以承认自己的错误,但我却不会承认自己输掉了辩论。这两者完全不同。而这并不是在逃避。于是我将做任何明事理之人在信息不符时都会作出的选择:精挑细选。

我下载了一份GWT的代码。这是Google广泛接受的库。这是个开始的好地方。

我再次运行代码分析。

结果

 

……

 

……

 

显然是数据集的问题。0.01?我对这样的仍然有一点点数据的结果并不完全信服,更别说其他的有效数据了。

我跳转到Guava的源代码。他们在干净良好的代码风格上的投入真是神乎其神。我的信心十足,这是一家好公司。至少,不可能有比0.001更差的了。

我运行了分析脚本。

…处理中

……处理中

………处理中

“该死。”

“语句之间是应该有空格的。”

周一

我的同事,带着有史以来最为自鸣得意的一张脸问着:“你周末看了那个语法上的东西了么?”

“什么?不——我完全忘了这事。”

收藏 4 评论

关于作者:埃姆杰

(新浪微博:@埃姆杰) 个人主页 · 我的文章 · 1

相关文章

可能感兴趣的话题



直接登录
最新评论
跳到底部
返回顶部