清蒸:之前你说到过,毕业工作的这 8 个月,是一个快速成长的过程。我觉得人的成长和他接触的东西,或者是做的事情息息相关。所以,你身上发生了什么故事呢?
小龙人:(狗头)这里真的要好好感谢 NebulaGraph 社区了。其实,我之前一直很想接触开源社区,但是确实很难。因为,很多社区的入门门槛会很高,特别是你如果小白一点,压根进不去。
NebulaGraph 这边用了比较本土化的沟通方式——微信群,和 Apache 倡导的 Email 的方式不大一样。微信群这种方式更符合我的实际情况,而且在群里看各位大佬讨论问题,即便我不发言,在这个过程中我也学到了不少东西。当我学到一些东西的时候,又反向去帮助别人,这种向他人学习、帮助其他群友的过程,收获到了很多东西。尤其是思为大佬,帮助了我很多。
简单来说,跟在大家后面学习,即便不交流,潜移默化也获得了很多知识。
清蒸:其实,你在这个过程中也开源了自己的两款产品:NebulaResultSetBoot 和 NebulaGraphQL。它们是你的工作产出么?
小龙人:NebulaResultSetBoot 可能还算和工作有点关系,它是一个帮你把 Java 结果处理成 JSON 的小工具,在我的工作中的的确确会用到它。因为其实它是一个工程问题,相信很多 Nebula 小伙伴都遇到这个通信问题,我也不例外,所以当我解决了这个问题之后,就把它开源出来捐献给了社区。
但是,另外一款 NebulaGraphQL 就完全是一个兴趣的产物。那时候,我在一个群里看有群有提了一嘴 GraphQL,我就去查了下 GraphQL 是什么东西。然后我感觉这个东西还是挺好玩的,就花了自己的时间去做了一下。
其实做的过程也是想说学习,看能不能把之前的一些想法、一些学习到的东西都用一下。这两个项目其实也没花多久时间,可能就几个周末就完成了,但是这个开发的过程中的确自己也学到了不少东西。
清蒸:这两款开源产品的未来,你有什么规划呢?
小龙人:NebulaResultSetBoot 基本上是个完成品了,后续可发展的空间比较小。但是,NebulaGraphQL 还是大有可为的。
目前来说,NebulaGraphQL 只提供了查询点,这个很基础的功能。现阶段的它相当于是 MVP,就是最小原型,验证了整个方案的可行性,并且把流程串通了。
后续的规划,最大的一点就是把整个 GraphQL 那套查询都搬过来。同时,能在应用层做一些缓存的话,估计就直接起飞了。
再者,如果加上前端这块的话,NebulaGraphQL 就真的能实现质的飞跃。因为,GraphQL 是有两个方面可以做的应用,第一个是真正的将它作为一种生产力。不过,目前国内大部分公司用 RESTful 的比 GraphQL 多很多。要相关从业人员改用 GraphQL 还是有点成本的,而且也非必要,一般公司不会那么干。
即便如此,NebulaGraphQL 的工具属性还是点满的。尤其是对部分前端工程师,或者不熟悉Cypher 的工程师,想简简单单查看一下图数据库里面数据,即便 nGQL 再简单,还是有一定的上手难度的。如果用 GraphQL 提供一个可视化的查询界面,快速地去查询自己需要的数据,做下逻辑上的验证,还是不错的。
因此,我觉得 NebulaGraphQL 大概率往后的发展就是辅助工具。因为有了它,做可视化真的非常简便,数据库同前端的交互就太方便了。