填坑要诀:四、小心别人的轮子里有炸

上文说了不要自己造轮子,要使用别人的轮子,这一文就说下使用别人的轮子要注意的事项。

上文的最后也说了,选择轮子的时候,要选择有人维护的,使用者多的轮子,这样可以避免一些问题。但是如果你的需求或者功能比较小众,这个领域轮子少,用的人也少,那么该如果选择?

我推荐如下几个策略。

  1. 向该领域的专家、前辈、同事请教,问下这个领域内大家都使用哪些轮子来处理的
  2. 同等条件下,优先使用大厂(比如Google,Alibaba)或大机构(如Apache)的轮子
  3. 同等条件下,优先使用issue活跃的轮子,这样至少出了问题,大家可以一起讨论,一起解决
  4. 同等条件下,优先使用代码逻辑清晰、优雅的代码,这样无论是对排查问题,甚至自行修改都是好的
  5. 最后的办法,就是自己造一个轮子了,但是如果能依赖别人的轮子来造,也是推荐的

选好的轮子,那么如果防范别人的轮子里有炸呢?我也推荐如下几条策略。

  1. 选好一个轮子,测试完毕上线后,就不要升级这个轮子了,除非这个轮子不满足需求。如果升级了轮子,务必做下全回归测试。
  2. 这个轮子可能在测试阶段或在现阶段没有问题。但是要时刻关注技术领域的相关新闻,或者该lib的issue。我用过的一个轮子socketIO就有一个内存泄漏的bug是通过issue爆出来的。还有前几天的fastjson的OOM问题。

最后修改于 2019-09-20