2020年度总结:拥抱开源、拥抱社区

安利phyxinon演奏的Altale

关于我的2020

2020从年初开始就注定是特别不平凡的一年。本来这里还应该有大段的文字,但是被疫情耽误的计划实在是太多了,几乎所有的出游任务都挂起了超过半年,所以。

新工作

在2020年初我换了新的工作,这个在之前的日志里面已经说过了,特别感谢老东家和各位前同事,感恩也是在刚毕业一年多里面学到最重要的东西。很多大块的知识都是在最初的这一年多中慢慢积累起来的,刚毕业的时候不懂技能广度重要还是深度更重要(当然现在也还没搞清楚),所以不管是经典的还是新鲜的内容我都尝试去了解,并且希望其中能有一些感兴趣的方向可以长线发展。而恰好在这段时间内,手头的工作非常适合钻研、落地一些想法,我觉得好奇心和发展平台能同时存在的机会真的特别少,很多人会在年轻的时候没有合适机遇,在年长的时候没有充足的精力,所以庆幸我的这段经历非常充实,也非常有意义。

换工作是一个非常难的决定,我花了很长时间思考,通过换工作我想要得到什么、将会失去什么。除此之外还有个很重要的理由,是我想在长满白头发之前先到处走走看。

于是我来到了现在的工作岗位上,刚到深圳那天天气特别好(我没料到后面每天天气都一样好)。在后续半年里面陆陆续续了解了一些项目的内容。是的我觉得到现在也只能算是了解,因为变更和迭代内容太快,而且实际上可能也就仅比想象中的“屎山”代码稍微靠谱那么一丢丢——虽然它还能正常运行。大约有10-15位同事和我一起在项目内施工,这可能还比隔壁项目组的少些——因为拆分得不够彻底,一些逻辑维护在原来的项目,各个组的同事或多或少都要用上。所以,我也很好奇漂亮工整的项目在这样大、快速扩张的业务里面真的能存在吗,如果有的话,它是如何管理得这么好的。

言归正传,我负责的工作是物流履约链路上的最末端,第三方的服务本来就是相当不可控的,还是非常感谢这些大哥没在双11、双12搞出什么大问题来,不然可能这篇博客里面写的就是一年跳槽2次的体验了。

在2020年结束前,我给手上项目落地了一个简单的数据库拆分。在很多内容都已经搭建完善的情况下,再出现从0到1做完一件事的机会太难得了。在8月份凌晨切换DB集群的时候,DBA一边处理切换一边和我们讲解各种存在的问题,业务数据涨太快了——尽管这和流量灰度的预期是一致的。再后来到9月份,相关的改造也提上了日程,我就直接向leader认领了把大刀。不得不说在项目里搞搞事情确实很有趣的,虽然加班改过很多个版本的设计说明书,也有被老板严肃批评过设计方案不理想。前前后后一共花2个多月,终于在双12结束之后把这版改造扔上了生产环境。

关于我的博客

在过去的这年,因为工作上忙了很多,所以也不能像2019年那样一直不停地写文章。当然,今年特别是下半年之后,我觉得博客产出应该是一件更加严谨细致的事情,所以本身也不应该有很多的水文出现。

如何让文章更加贴近实践和有价值、有意义,这是众多思考中的一点,也是最核心的点。通常诞生一篇新博客,需要:

  • 有明确的目标:解决遇到的什么问题 / 介绍什么样的前沿内容
  • 素材积累:落地方案调研、对比、分析 / 翻译论文、阅读源码
  • 编排组织内容:从什么出发,用哪种结构才能让别人更容易看懂、有收获
  • 文章润色和微调

这里面素材的积累是最难的,每当我想要写一篇新的内容时都会问自己,这些东西真的会了吗,如果有人要来Challenge,能答得上来吗。所以,作者相对于笔下的内容都应该有翻倍以上的知识储备来应对读者的提问。这大约会占掉60%以上的时间,但这也是一个正常的学习过程,写作本身是为了学习,然后才是分享。

另外,每次的初稿都和发布时有很大的差异,我觉得大概是因为写作的时候思路太零散,所以这些内容在最后润色的时候都会被一一梳理和纠正过来,如果未来可以顺畅自然一些就更加好了,不该总是反复改动。

今年自己最满意的写作应该是《Paper Reading:聊一聊MVCC》——虽然它只是一篇介绍性的文章,然而选题、读论文、反复改稿的过程里面参考了很多内容,也非常有收获。如果其他人也能从中了解到想学的内容的话那就更棒了。

关于Github

2020年从0开始尝试动笔给开源项目提交一些小改动。我觉得即使是从改Typo起步也是合理的,当然如果能有更深入的见解和提案的话能再上一个层次。

从Pull Requests来统计,我提交了这些内容(按repo排序):

总体来说虽然有点少,但还是决定对自己宽容作为新手的这一年,希望2021年有更多更有意义的提交。

另外既然讲到开源项目,如何平衡工作和业余的时间也是个大问题。每天其实办公的时间也不能算少(当然,比起互联网大厂来说我觉得算能接受),如果还继续坚持这样那样的事情的话,大概还要继续单着一段时间吧。

关于新的一年

新的一年目前还没有什么特别明确的规划,这非常不好,因为摸不着方向很容易走弯路。以往每次遇到这种情况的时候,我都是随手翻一本新书来看,看完了这段迷茫的时间也过去得差不多了。不过这次还是再来稍微立点Flag看看能不能完成吧。

我和Redis

这真的是个非常理想的、新人友好的项目,而且使用广泛,社区大。在2020年原作者Antirez退居二线,交由RedisLab/社区维护之后,迭代新功能的速度快了很多。我觉得自己已经有半桶水的准备来给这个项目添砖加瓦,希望一切都顺顺利利,也要多向活跃在社区内的开发者交流和学习。

我和Go

在过去的一年里面其实和这个新生态打交道的机遇并不太好,还是靠自己手上乱七八糟的小repo为主。语言类的事情一旦和工作内容没办法相结合就很容易做了忘,再做再忘。我觉得新的一年里面这个问题应该要有不同的解决方法,其实从一开始就可以假定这不会在工作上用到,社区还能有数不清的repo和issue在等着自己,所以go run 2021.go