gogogo
人类所有的真实的快乐,都离不开艰辛的努力,无论是金榜题名的快乐,还是事业成功的喜悦,甚至包括洞房花烛的激动,所有真实的快乐,都需要长久的铺垫与努力,没有辛勤的汗水,幸福也就不再成为幸福,所以如果快乐触手可及,这种廉价的快乐,也就不值得珍惜,随时都可以抛弃,因此对于年轻人而言,一个重要的功课就是学会去节制欲望,大家知道最好的厨子是什么,最好的厨子就是饥饿,如果每天都是大吃大喝,每天都是饕餮盛宴,人一定会失去对所有食物的胃口,所有通过捷径所带来的快乐,无论是性的放纵,还是毒品,最终都会让人失去志向,因为快乐来的太便捷,以致所有的追求都变得毫无意义,人生也就了无生趣,而所有幻想着通过捷径来体验快乐的尝试,最终,带来的一定是痛苦与空虚,在每天,真的的努力中,去拥抱人生的意义,去追寻真实的快乐。
去年5月的Gopher China,听了杜旭老师分享「知乎社区核⼼业务 Golang 化实践」,今年7月,我也在知乎做这样的事情了,有时候就是这么奇妙吧。圈子后端,去年年中开始的,不知道为什么,当时选了py,而且还是py2,我想应该是当时时间紧急,人力和技术的限制吧。一方面py2已经在今年1月1号狗带了,另一方面,圈子已经进入首页tab,QPS涨了一大波,py2有点儿扛不住了,目前的痛点是有一个rpc接口响应时间不太稳,而且资源消耗太多了。因而,从上周开始做golang迁移,先重写一个rpc接口,到本周小流量对比进行中。
加入知乎3个多月了,大体上做了两个事。一个是个人信息查询修改的一个迭代,我记得是我入职的当天下午,侯容跟我说了这个需求,当时一脸懵逼,我还记得侯容说,这个需求他做的话两三天吧,我做的话一周应该也可以了。复杂性来说吧,这玩意儿既涉及到读接口,也涉及到写接口,而且web和app还不是同一个接口,而且读是go,写是py,还有rpc相关的逻辑,第一个需求,基础的开发逻辑,差不多都用到了,而且这几个接口相当重要,影响用户注册、用户信息查询、用户信息修改,当时压力挺大的。另一个就是圈子后端的迭代了,零零散散、大大小小做了一些事了,只是python本来就只会那么一点点儿,就靠着复制粘贴和模仿堆功能吧,踩了好多坑,而且py的语法太灵活,语言太动态了,有时候有一些东西感觉用的有问题,但是源码看不懂,追着追着就不知道这个对象到底是个啥玩意儿了,不得不提的一点是,py的decorator是真骚。。。还有一个不算很大的事情,知乎官方账号创作者小助手,每周会给开发者发一个一周小结,之前是图片格式,现在改成一种特殊的卡片私信了,由于我在负责私信后端维护,所以这个就我做了,还有一个是客服结束之后的反馈,我记得我面试的时候,好像就聊过私信这种场景,现在有机会好好看一下私信的实现逻辑,还挺好的。
虽然好多代码都是从别的地方复制粘贴的吧,自己从头开始拼起来,还是有挺多收获的,当然了,也踩了挺多坑的。首先是各种基础功能组件的初始化吧,以前只是用,没看过他们怎么初始化的。然后对分层的理解,我记得以前go和py都搞出过循环import(好巧,go和py都是import,虽然它们包的定义差别挺大的),很痛苦,当时只是看到分层了,但是对每一层的理解不够,如果分层合理,是不应该出现循环import这种问题的。再然后go的源码比较容易阅读了,所以遇到问题可以追下去看看是不是自己理解用的不对,之前用py做了个localcache优化,部署之后对redis访问确实降低了,但是总的时间更长了,不知道是哪里更多了,我想应该是用的不对,但是源码追着追着就没了,还有py的一些连接数有问题,但是我又看不懂是没关闭还是咋地,换成go之后,做优化和问题排查都会容易很多吧。
基本流程大概四步吧,开发->小流量对比->小流量放量->流量切换。
go刚重写完成上线,发现响应时间更长了,很郁闷很郁闷很郁闷。看看代码没发现什么问题,百撕不得骑姐中,突然想到了pprof,然后就找到瓶颈了,问题出在判断几个元素是不是包含在另一个slice(比较大,60w+)中,不像py,可以in list,先转成map,然后取一下,没想到这个东西这么耗时,优化一把,问题解决,最终go的p95不到py的1/3,而且容器也节约了好多。不得不说,golang真香,pprof真香。
很期待迁移go之后性能提升和资源节约,而且可以好好做一些优化,有问题也好查。
然后聊点儿别的吧,「大明宫词」,莎士比亚风格,特别喜欢的一部剧,看过好几遍了,这部剧把每个人都当成人,每个人都不完美,每个人都有自己的不得已。之后发现了另一部剧,「大唐情史」,同样的莎翁风,风格我也挺喜欢的,但是剧情很不喜欢,高阳太作了吧,仿佛整个世界都欠她的,断断续续好久了终于咬着牙坚持看完了。「大明宫词」把每个人都当成人,天皇、天后、皇子们、薛绍、李隆基,甚至包括合欢,而「大唐情史」,感觉都是神经病,没几个正常人,看完了感觉驸马可能还算是比较正常的吧。盛唐可能确实有点儿乱吧,高阳、武皇、太平。。。想起一句歌词:据说,释迦牟尼了悟的那棵菩提树,前生是一个爱他的女子……辩机,希望来世,你可以成佛。又想起了仓央嘉措的一句诗,世间安得两全法,不负如来不负卿,可能就是辩机内心的写照了吧。
「重启之极海听雷」,坑王三叔又双叒叕又来收割了,每次都是一样的套路,填几个小坑,然后挖更多更大更深的坑。相对于鬼吹灯,盗墓笔记的水平确实差太多太多了,鬼吹灯写的很圆满,所有的事情都讲清楚了,盗墓笔记全都是坑,而且还有很多矛盾的地方,只能说三叔的水平确实不够吧。但往往就是这样,留一些坑更能吸引读者,引导读者去探究,每次以为他要填坑了,结果他挖了更多的坑,反反复复,一次又一次。就像「诛仙」,我觉得诛仙2还是不要写了,让经典永远成为经典吧。每次被三叔坑之后,都说着辣鸡再也不看了,然而嘴上说不要,身体还是很诚实的,继续追剧吧。。。
大刘最近的一篇文章——新冠疫情与外星人,这两件事有某些相似之处,它们都是人类世界所遇到或可能遇到的重大意外事件。新冠的出现,偶然中的必然,必然中的偶然,北京这波疫情同样也是,偶然中的必然,必然中的偶然,所以,过几天某个城市再来一波,一点儿也不奇怪,也不必惊慌,该干嘛干嘛,世上只有一种病,那就是穷病,该工作工作,该赚钱赚钱。病毒传播也是讲科学的,不是玄学,科学防疫,问题不大,别慌。
还有最近的股市,挺刺激的,过山车一般,同样的,别慌,稳住,问题不大。国运,如果国运完了,个人那点儿事也就无所谓了。