工作
新的挑战
本周开了一个新的项目 databend-go-driver,是一套类似于 gosnowflake 的数据库 SDK,主要是基于 Go 的 database/sql package,实现相应的 interface 并注册 databend 到 database/sql,可以使用下面的代码像操作 mysql 一样操作 databend :
1 | func main() { |
目前项目的架子搭了一下,已经完成基本的注册和简单的 exec 功能,但距离真正生产可用比较遥远。。。还要实现 query, rows, async rows 等功能,完成这些工作就需要对 databend 的工作原理、结构有一定了解,可能是一个小挑战QUQ。
开源
最近由于项目需要又用了一下 fuckdb,这是一个能够一键将 mysql schema 转成带各种 tag 的 golang struct 的大大提高开发效率的工具,感兴趣的可以研究一下这里不多作介绍了。主要是在打开 github 项目页面的时候发现一个陈年老 issue,竟然是去年 7 月份用户提出来的,回想起去年 7 月,确实是忙得焦头烂额(懂的都懂),但没想到这个问题一搁置就是一年。
这个需求是将 struct 的 json tag 从 snake case 转成 camel case,改动之前生成的代码是这样的:
1 | type structName struct { |
snake case 本身也不符合 golang 的代码风格,所以就鲁了一个 PR 解决了这个问题,输出的 struct 就是:
1 | type structName struct { |
嗯,优雅了 =.=。
其他
记录一些随手拍: