
哥几个,最近我遇到个事儿,挺有意思的,想跟你们掰扯掰扯。不是啥大项目,也不是啥高深技术,就一个特别简单的小谜语,但它硬是把我这老伙计给带跑偏了,然后又把我给带回了正道。...
哥几个,最近我遇到个事儿,挺有意思的,想跟你们掰扯掰扯。不是啥大项目,也不是啥高深技术,就一个特别简单的小谜语,但它硬是把我这老伙计给带跑偏了,然后又把我给带回了正道。说起来,还真像我们平时干活儿,有时候就一个点儿,让你钻牛角尖,然后又因为一个点儿,给你茅塞顿开。
那天下午,我正趴电脑前,为手头一个项目抓耳挠腮。这项目,老实说,有点儿卡壳。我不是没想办法,各种思路各种招儿,都试了一遍,但就是感觉不对劲,好像总缺点儿什么,或者说,我一直都在一个劲儿地往前冲,想用蛮力解决问题。结果?越用力,越觉得不得劲,自己都快把自己绕进去了。
就在我把自己搞得焦头烂额的时候,微信响了。我随手拿起来一看,不是工作群,是我那铁哥们儿发来的,就一句话,带个表情包:“老王,给你出道题,一只黑狗不叫不吼,打一字。猜对的智商都高!”
我当时就笑了,什么鬼玩意儿。心想这小子肯定又在哪儿刷到段子了。不过既然来了,也别白来。我寻思着,正好歇歇脑子,换个频道。反正电脑前也坐不住了。

我看着那几个字,嘴里念念有词:“黑狗不叫不吼……打一字?”
我试着把“犬”和“黑”往一块儿凑,脑子里把所有带犬字旁的字都过了一遍。什么“狗”、“狼”、“狐”、“狱”……都不是。我又想,是不是“不叫不吼”的意思更重要?“静”、“安”、“休”?也不对,这跟“黑狗”没关系。当时真是陷入了一个死胡同。我甚至开始怀疑,这是不是个坑,根本没答案?
我把手机扔一边,继续去折腾我的项目。但说也奇怪,那个谜语就像个小虫子,一直在我脑子里爬爬。我写几行代码,就琢磨一下“黑狗不叫不吼”。后来我索性不管了,起身去茶水间泡了杯茶,站在窗边看外面。外面的车来车往,人来人去,看着看着,突然脑子里就跟过电似的,“嗡”的一下!
“不叫不吼,那不就是‘默’吗?”我突然想到了这个字。
“默!对,沉默的‘默’!”

然后我赶紧回想谜面,"黑狗不叫不吼"。
“黑”字,不是正好在“默”字的上面吗?“犬”字,不是正好在“默”字的下面吗?
“黑”字,加上“犬”字,可不就是“默”字嘛
而且“不叫不吼”,它本身就是“沉默”的意思!
那一刻,我真是拍大腿了,不是一般的兴奋。感觉这小谜语简直精妙!我赶紧给哥们儿回了个“默”字过去,还附带了几个佩服的表情包。哥们儿很快回复:“牛老王,智商杠杠的!”
这事儿本来就这么过去了。但后来我坐在电脑前,看着我的项目,突然就觉悟了。我不是一直在用蛮力吗?一直在搞那些复杂的、大张旗鼓的方案,结果?把自己搞得乌烟瘴气,问题还是没解决。这就像那“黑狗不叫不吼”,它没叫没吼,但是答案就在那里,安安静静地躺着。
我这一下子就明白了,也许我的项目问题,根本就不是要大刀阔斧地去改,去加一堆东西,而是要“默”下来,好好地观察,好好地思考那些“不叫不吼”的线索。
我开始重新审视我的代码,不急着动手改。我把一些看起来很“吵闹”的、复杂的逻辑先放一边,转而去关注那些看起来不起眼,甚至是被我忽略的“沉默”部分。比如说,数据流转是不是有很小的阻塞点?某个变量是不是偶尔没被正确初始化,但因为它不报错,所以我没注意?或者,是不是某个模块,它应该“静默”地做一件事,但我却让它掺和了太多不该掺和的逻辑?
我就这样,从头到尾,一点点地“默”下来,去感受那些代码里微弱的呼吸。还别说,真给我找出问题了!就一个特别小的地方,一个参数传递的顺序不对,导致初始化的时候偶发性地出了点状况。之前我一直在追那些复杂的并发问题、分布式事务,结果问题竟然出在最基本的地方。它不叫不吼,因为它不是bug,只是一个逻辑上的小偏差。
解决了问题以后,我那天晚上真是心头畅快。一个简单的谜语,就像给我打了个哑谜,把我从自己挖的坑里捞了出来。它让我明白,很多时候,我们不需要把事情搞得轰轰烈烈,不需要发出多大的声响,真正的智慧,或者说解决问题的关键,可能就藏在那些“不叫不吼”的角落里。静下来,默下来,才能真的看清。
所以说,哥几个,以后遇到难题,别光想着往前冲,也学学这“黑狗不叫不吼”,多“默”一会儿,没准儿答案就在那儿等着你。