计划:用 Node.js 重写 GBF-RaidFinder

最近产生了一个“大胆”的想法,就是用 Node.js 来重写 walfie/gbf-raidfinder 这个被许多骑空士使用着的项目。

为什么想要重写?

因为原项目是用 Scala 写的,运行在 JVM 上,虽然 JVM 跨平台的能力比较强,但它相对比较“臃肿”,而且构建、更新起来比较慢。可以是可以用作者提供的 Docker 镜像直接部署,但是之前因为 Docker 不兼容于 4.9 以上的内核,而我又比较依赖于 bbr 这玩意儿所以就没用 Docker 而是直接跑在系统的 JVM 上。

那么为什么想用 Node.js 重写,Node.js 相比较于 JVM, 保证了一定的跨平台能力的同时更为轻量化,版本迭代的代价也更低一些。最主要的是,我想通过这次重写来学习 Node.js 和 Javascript, 因为这个项目是 C/S 架构的,也能学习一定的全栈能力。

重写方案

在重新简要查看了原作者的实现之后,我得出了“这不是我短时间就能重写出来”的结论,原因如下:

  • 原作者使用了 WebSockets 这项技术来实现列表的实时更新
  • 原作者使用的许多库不知道在 npm 有没有类似的替代品
  • 原作者写的 Boss 列表自更新是一大难点
  • 我在 JS 和 Node.js 上都只是一个初学者

那么就一步一步地来,先写出一个 Twitter 的搜索模块,再学 WebSockets 然后把实时更新给实现了,然后把自更新实现了,最后把几个部分整合到一起,差不多重写就完成了。我给这个坑留半年到一年的时间,希望明年的现在我已经填完这个坑了。