什么是追求精确呢?
简单讲,就是要把事情搞清楚,不要模棱两可,A 就是 A,B 就是 B,说出来的东西要经得起推敲,不要靠猜测,要自己去考证、验证。
什么时候开始变得追求精确的呢,回忆起来大致是这么一个过程。
萌牙期
2016年,在给鹅厂做一款独代游戏的时候,那时我是服务端主程,需要做出一个能支撑百万以上同时在线的架构,并且还要能横向扩容,快速扩容,能在 30 分钟内再扩容百万在线。在这个过程中,我做了很多的艰难的思考,最后项目也成功上线了,虽然没有百万在线,但几十万是有的。
这个架构设计,总结起来实际上就是要做一些精确的计算:外部消息量,内部消息量,rpc 量,计算量,数据库请求量,数据存储量,…。各种量都计算清楚之后,再留一些余量,选用合适的组件。组合起来,就是一个能够达到要求的架构了。当然,还要考虑集群稳定性、容灾之类的问题,但根本还是在于计算。
从那时起,我就认识到工作中是要追求精确的,不能瞎猜,瞎猜可能偶尔 work,但不能一直 work。
发展期
是我上一份工作的时候了,那时的老板我称之为铨哥,他经常挂在嘴边的词就是精确(或许是其他的),反正他给人的印象就是什么东西都要精确的跟他表述,否则他就会发飙。任何时候都要把来龙去脉跟他说得一清二楚,不要大概、也许、可能。你必须搞得一清二楚了,再去跟他说,否则肯定是挨骂的。
我太欣赏铨哥了,虽然我只在他的公司工作了 9 个月(家里有些事,不得不请个长假,干脆辞职),但他对我的影响特别特别深。
这 9 个月里,我做了蛮多技术优化的工作,都是遵循精确的原则,一定要把事情搞清楚,然后再去优化。这也符合马斯克说的:不要去优化一个不应该存在的东西。
这里似乎有点串了,马斯克是第一性原理,但其实万事都是相通的,第一性原理,本质上是要求我们从根本上去推敲是否需要做一件事情,怎么去做一件事情,那其实就是要把事情搞得一清二楚,明明白白。
成熟期
是现在这份工作的时期,也是刚入职,就着手做技术优化。相比于上份工作,我更有经验了,一上来就是做各种测量跟验证,把性能问题搞得一清二楚,然后再去优化。结果也是药到病除,完成了既定的目标。
这些经历更加坚定了我的信念,工作就是要精确的,只有一清二楚,只有清晰,才能把事情做好。
此时,想起段永平经常说的:做对的事,把事情做对。只有建立起正确的认知,才能做到他讲的这两个点。
所以,不能偷懒,一定要老老实实把事情搞清楚,要付出汗水,当然,也需要耐心。
最近
回到最近的工作上,冲突在于,我接手的技术方案,在我看来很不精确,这些做法基于很多假设,但这些假设没有经过实际的验证,更多的只是一些担心。我看太多马斯克和雷军的言论了,已经受不了基于猜测去做事,必须一清二楚,我才会接受,否则就肯定要挑战。
于是坐下来,一起把问题讨论清楚,得出一个大家都觉得比较可行的方案,这就挺好了。