Dropbox 开源其 Go 语言库

jopen 10年前

  英文原文:open-sourcing-our-go-libraries

  Dropbox 的成功大部分归功于 Python,这个语言可以使我们快速迭代开发。然而,为了支持日益增长的用户量,我们的基础设施日渐成熟,这时我们开始寻找一种更为高效的方式来改变系 统规模。大约在一年前,我们作出决定,把对于性能要求很苛刻的后台部分从 Python 迁移到了 Go 语言,以提供更好的并发支持和更快的运行速度。一个规模很小的工程师团队做出了大量的努力,这背后大约是 200,000(二十万)行 Go 语言代码。此时,我们成功地把架构的大部分迁移到了 Go 语言。

  缺少构建大型系统的健壮的程序库,已经成为了反复出现阻碍我们开发进度的问题。这并不奇怪,因为 Go 语言还是一门十分年轻的语言。为了处理这个问题,我们的团队开始构建各种各样的库,已提供更好的封装抽象,例如连接管理和 MenCache 客户端。我们非常兴奋的宣布我们开源了这些库,帮助更广大的社区开发大型的产品系统。

  作为这项努力的开端,我们包含了许多库。下面列举几个:

  • caching :提供建立 caching 层的通用抽象。
  • errors :强化了标准错误接口并且揭示出栈跟踪的信息
  • database/sqlbuilder : 允许开发者用可编程的方式生成 sql 语句。
  • memcache : 实现了一个全特性的 mencache 客户端库,支持连接池和灵活的遮蔽(shading)。
  • net2 : 连接管理中加入了函数性功能。
  • (还有我个人最喜欢的,hash2,它包含了一个空间效率高,基于排列的连续哈希算法)

  我们会在下面这个 repo 继续扩大这些库的规模:

  https://github.com/dropbox/godropbox

  为了确保我们持续投入努力到这些开源库中,我们承诺在我们内部也使用这个公开版本的 repo。我们正在迁移内部系统,以直接使用这个 repo 中的库。这能确保所有的修改和优化都能在他们被提取内部系统之前对公众开放。

  我们希望你能加入我们的社区,帮助我们把这些程序库变得更好!

  翻译: 伯乐在线 Hanbin
  译文链接: http://blog.jobbole.com/71414/

来自: 伯乐在线