Dropbox 開源其 Go 語言庫

edithfang發表於2014-07-06

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中的庫。這能確保所有的修改和優化都能在他們被提取內部系統之前對公眾開放。

本文轉載自:http://blog.jobbole.com/71414/
相關閱讀
評論(0)

相關文章