服务计算修炼 boltdb使用心得

boltdb使用心得

前后端使用心得

首先这一次的实验我们组最后选取的主题是复制star war api 的网站,原因就是这一次实验的主要目的还是希望我们能够体验什么是前后端分离的开发和通过好的api设计来方便之后的迭代和提高交互体验。

具体的分工就是我复制服务器端的数据库移植和数据操作的接口的设计。

虽然说是对于数据库的操作但是其实和想像过去的什么数据库工程师的日常生活还是很不一样的,主要还是因为这一次实验因为使用的go语言写服务器端,所以选用的数据库就使用的是更加符合现代的非关系型数据库–boltdb,但是实话实说体验还是不是很好的,一方面是boltdb是由个人完成的,虽然完成读从作者的描述上来说还是安全挺有保障的,但是毕竟是个人的作品。并没有很详细的文档来介绍如何使用,可以参考的资料也只有一点点其他使用者的使用经历。

其次就是很大程度体验很差的原因就在于go语言这种强类型有类型诊断的语言来写key-value的数据库的体验是真的差得没边了,虽然可以用interface{}大法来越过一些类型的事先确定,但是还是需要在之后使用的使用来诊断,还是觉得有些麻烦。

代码分析

首先要说的是这一次我的工作主要就集中在两个地方,一个就是把star war api的源码里面的数据全部找出来并且移植到自己的boltdb数据库里面,其中就需要对于star war api的源码有一定了解。一个就是写一些根据现有的数据库里面的结构进行一层抽象,使需要查询数据库里面的人可以不需要直接面对boltdb的接口,增加无端的学习成本。

数据移植

这里需要提到的地方就是star war api的源码是用django写的,了解django的人就会知道django吸引人的地方就是其实这一个框架很有趣的地方就是是数据base的也就是自带数据库。

所以一想就知道肯定数据是存在代码里面的而不会去说再去建立一个数据库服务器。再按照django的标准马上就可以再migration文件夹的周围找到json文件格式的数据文件。
服务计算修炼 boltdb使用心得_第1张图片

然后所需要做的事就是把这一些json格式的文件全部读到boltdb的新建的数据库里

服务计算修炼 boltdb使用心得_第2张图片

其中比较有具有代表性的代码就是这一些,主要就是通过go的encoding/json 包来对于字节和字符串来进行解析,之后再通过boltdb的调用来新建bucket和update不断加入新的key-value项目行来保证不断得把数据全部读入进数据库中。

数据库操作抽象

服务计算修炼 boltdb使用心得_第3张图片

这就是对于可能会使用到的搜索的方式来进行抽象来得到的函数,作用就是通过指定的输入参数来不断达到返回想要的数据库的结果。

你可能感兴趣的:(服务计算)