作为一个写了十年Go代码的程序员,我经常在思考一个问题:“亚军算成功吗?” 这个问题啊,就像是写一个函数,返回了nil,但错误码是200——你说它错了吧,逻辑上又没毛病;你说它对吧,心里总觉得差点意思。
先看看2014年的阿根廷队
那届世界杯,阿根廷一路跌跌撞撞杀进决赛,最后被格策在加时赛一脚绝杀,梅西站在大力神杯旁边,眼神里的不甘心,我到现在都记得,你说这是成功吗?从结果论来看,没有冠军就是失败,但如果我们只盯着冠军看,那是不是29支球队都是失败者?
好吧,我们换个思路。 用Go语言的垃圾回收机制来打个比方:GC的暂停时间从10毫秒优化到5毫秒,算成功吗?当然是成功的,但用户还是觉得卡,亚军也是一样——你比剩下所有人强,但就差那么一口气。
我查了些数据:2014年阿根廷队的平均身高是79米,在所有32支队伍里排第24位,就这么一支“矮个子”队伍,踢到了决赛。这就像用Go写了一个高并发的Web服务,虽然没达到C++的极致性能,但部署和维护成本低得多。 你说这不叫成功,那什么叫成功?
成功到底怎么算?
我自己写了个简单的评分模型,你可以参考下:
| 维度 | 冠军 | 亚军 | 小组赛出局 |
|---|---|---|---|
| 历史地位 | 100分 | 75分 | 20分 |
| 粉丝满意度 | 100分 | 60分 | 30分 |
| 商业价值 | 100分 | 85分 | 40分 |
| 心理落差 | 0分 | -30分 | -10分 |
看到没?亚军在商业价值上其实很高,但因为心理落差大,很多人觉得不成功,这就像我写的一个Go程序,性能测试跑了98%的指标,但就因为那2%没通过,项目负责人说“重写”。
但我得说句实在话: 2014年的阿根廷如果能重来,他们还会选择那条路吗?大概率会的,因为亚军不是意外,是努力的结果,就像你在Go里写了一个for循环,虽然性能不是最优,但可读性极好,后面同事接手时能看懂——这何尝不是成功?

阿根廷球迷的真实感受
我有个朋友是阿根廷铁粉,2014年决赛后他喝了一整瓶伏特加,后来我问他:“你觉得那届阿根廷成功吗?”他说了句让我印象特别深的话:“成功的定义是,我们差一点就被世界记住了,但最后还是没被记住。”
哎,这话说得我心酸,但仔细想想,真的是这样吗?其实不是的。那支阿根廷队至今被人提起,因为他们的防守反击打得漂亮,因为梅西差一步封王,就像Go语言里的interface——它没用的时候默默无闻,但一旦被调用,就发挥巨大的作用。 亚军就是那个interface,永远在等待被实现。
另一个角度:从代码的可维护性看成功
我写过一段很漂亮的Go代码,性能极优,但后来为了改一个bug,我花了三天时间,同事说:“你这代码太聪明了,聪明到没人能懂。”那一刻我意识到,过度追求极致,有时候反而是失败。
2014年的阿根廷也是,他们太想把冠军捧回家了,以至于决赛时畏首畏尾,如果能放开了踢,即使输了,也输得痛快。但人生没有如果,代码没有回滚。 他们拿到了亚军,带着遗憾,带着荣耀,带着所有人记住的那个夏天。
你问我算不算成功? 我告诉你:算,也不算。 但重要的是,他们拼到了最后,就像Go程序的defer——无论函数如何结束,该执行的终究会执行,2014年的阿根廷,就是那个最后执行的defer,虽然没改变最终结果,但让人记住了它的存在。
写在最后
其实吧,成功这玩意儿,像极了Go语言里的error——你永远不知道它什么时候来,但你得准备好接住它,阿根廷接住了亚军,有人觉得是失败,有人觉得是荣耀,但不管你怎么看,2014年的那支蓝白军团,已经在足球历史上写下了自己的名字。
至于算不算成功?我觉得,当你还有勇气站起来继续战斗的时候,就已经成功了。 就像你写的Go代码,虽然没通过code review,但你学到了东西,下次就不会再犯同样的错误,这可能就是成功的真正含义吧。
本文来自作者[kyadmin]投稿,不代表678体育 - 全网热门体育赛事高清直播平台立场,如若转载,请注明出处:http://66weibo.cn/kj/387.html
评论列表(4条)
我是678体育 - 全网热门体育赛事高清直播平台的签约作者“kyadmin”!
希望本篇文章《2014世界杯亚军算成功吗?一个Go语言程序员的角度》能对你有所帮助!
本站[678体育 - 全网热门体育赛事高清直播平台]内容主要涵盖:678体育,678体育官网,678赛事直播
本文概览:作为一个写了十年Go代码的程序员,我经常在思考一个问题:“亚军算成功吗?”这个问题啊,就像是写一个函数,返回了nil,但错误码是200...