Dropbox 开源其 Go 语言工具库

  • 郭蕾

2014 年 7 月 7 日

话题:Python语言 & 开发架构文化 & 方法Go

近日,Dropbox 开源了其基于 Go 语言的工具库godropbox,并表示在一年前已经决定将 Dropbox 中对性能要求比较高的后端程序从 Python 迁移到 Go 语言。Dropbox 的几乎所有的代码都是用 Python 编写的, Python 语言被广泛使用在服务器端、桌面的客户端、网站控制逻辑以及后端的 API 和分析上。Dropbox 亲睐 Python 简单易学、开发效率高等特点,但是现在为了支撑日益增长的用户数量,Dropbox 不得不将部分对性能要求比较高的业务替换为有更好的并发支持和更快的运行速度的 Go 语言。

但是 Go 语言的发展尚不成熟,比如在 Dropbox 使用过程中就发现 Go 语言缺少构建大型系统所需要的健壮的程序库。Dropbox 开发团队为了解决此问题,封装了很多实用的 Go 语言工具库,并将其开源以帮助社区开发基于 Go 语言的大型系统。Dropbox 承诺他们内部使用的也是开源的godropbox,他们会持续维护更新 godropbox。godropbox 中包含了很多工具库,下面是部分热门库:

  • caching 一个构建缓存层的工具包
  • container 包含了众多的容器 / 缓存数据结构
  • container/lrucache 标准的 LRU 缓存
  • container/set 集合的实现
  • database 数据库操作工具类
  • database/sqlbuilder 编程式拼装 SQL 工具包
  • errors 强化了标准错误接口并且提供栈跟踪的信息
  • gocheck2 单元测试框架
  • hash2 哈希函数工具类
  • memcache memcache 客户端
  • net2 标准的 net 包的扩展
  • time2 标准的 time 包的扩展

另外,需要说明的是 Dropbox 并不是把所有业务都迁移到 Go,而只是把对性能要求比较高的基础部分迁移。Dropbox 会继续把 Python 当作主要的开发语言。

读者可以到GoDoc上详细了解 godropbox。目前 godropbox 的很多工具包都不能单独使用,希望接下来 Dropbox 可以为每个功能提供单独的工具包。

Python语言 & 开发架构文化 & 方法Go