Luyao

土方法不土

前两天把一本叫《数据密集型应用系统设计》的书看了一遍。

有点好笑的是,这书是我前几年买的,当时看了一部分,后来去搞 crypto 了。我心想,这辈子应该不会再有机会看这本书了,毕竟区块链上没多少数据。结果没想到又在做内容类东西,又回来看这本书了……😆

看这本书有一个很有趣的收获,就是 “土方法不土”

以前我都默认我自己的解决方案是比较土的,所以遇到问题下意识会去找现成的工具和库,然后花老半天去学习怎么用这个工具,把事情越弄越复杂。

但读了这本书就会发现,那些牛逼的有名的数据库,你以为它们都是高深莫测的东西,但其实它们底层都是很“土”很简单的原理。只是它们对于缺陷,做了更多针对性的处理。

还比如像 Twitter 的时间线,早期很长一段时间里,它都是很土的,就是单纯从数据库里按规则取这些 tweets。直到后来出现性能问题,才改成了现在这种提前帮你准备好时间线存起来的方案。

做 Bodhi 的过程其实也是,许多东西都是我自己写的小玩意儿,比如缩略图服务、缓存服务、上传服务,都是我手写的小东西,运行得都很好。像那个缩略图服务,连数据库都没有,数据都只在内存里,土得不能再土了,结果运行得很好,没有出任何问题……直到前几周 space 发布前,我才把数据改存在了 redis 里。

所以“土”本身并不是问题,重要的是针对问题本身,解决问题,“刚好解决”即可。而认为它“土”,本质上是在幻想一些尚不存在的长期问题,是不必要的。