Go 開源說第二期:GORM 剖析與最佳實踐

寫在前面

隨着Go在中國越來越多的應用場景,我們中國的Gopher開發的開源項目也越來越多,目前在github上面有大量的Go寫的開源項目,但是很多時候一個好的項目讓別人獲知,同時讓大家瞭解背後的設計設計原理,其實是很困難的一件事情。

基於這樣的背景,我們GoCN社區推出這個《Go 開源說》,每兩週會播出一期。希望通過這樣的平臺幫助到我們開源的作者,有一個平臺去推廣我們的開源項目,第二說說背後的設計原理和理念,產品優越性等。第三讓我們用戶可以瞭解到更多好玩有用的項目,避免自己造輪子重複發明,當然也希望通過這些分享讓大家學習到每一個開源項目背後的設計理念,擁抱開源,做出自己的產品。

—— Asta

本期開源先鋒

張金柱 https://github.com/jinzhu

  • 就職於字節跳動基礎架構語言團隊

  • 目前從事字節跳動的性能分析、優化及 GORM 開發相關工作

關於 GORM

 https://github.com/go-gorm/gorm

設計簡潔、功能強大、自由擴展的全功能 ORM

設計原則

  • API 精簡、測試優先、最小驚訝、靈活擴展、無依賴  可信賴

功能完善

  • 關聯:一對一、一對多、單表自關聯、多態關聯;Preload、Joins 預加載;關聯模式

  • 事務:嵌套事務, Save Point

  • Hooks、Callbacks 自由擴展

  • 多數據庫、讀寫分離、Prometheus、Prepared Stmt、查詢優化器、批量數據處理、代碼共享、子查詢、DryRun

  • SQL Builder、Smart Migration、複合主鍵、自定義類型 (JSON等)、SQL 表達式查詢創建更新、虛擬字段…

  • 真 • 跨數據庫兼容

本期精彩看點

看點1:GORM 項目初衷與發展歷程

GORM 最開始源於 2013 年,當時在做一個支付系統,當時 Golang 的生態圈不夠成熟,沒找到符合自己需求的庫,然後拼 SQL 拼煩了,然後自己花了一個周未的時間做了第一版,幫項目順利上線。

看點2:GORM 項目的優越設計理念

GORM 遵從了 API 精簡,測試優先,最小驚訝,自由組合擴展,無依賴的設計理論,爭做一個健壯的可信賴的開源產品。

看點3:GORM 項目在字節跳動內部的實踐應用

GORM 在字節跳動的應用很廣泛,公司內部社羣比 GORM 所有的微信羣加起來的人數多的多,現在廣泛應用在字節跳動的上萬個 Go 的微服務當中。

如何提前互動

請在評論區留下你對於 GORM 項目感興趣的問題,我們會統一收集在直播中進行答疑~

如何報名

查看下列截圖你是否在任意的Gopher羣裏,如果已經加入任一Gopher羣,只要在31日關注羣內動向,我們會在晚上 20:00 準時開啓直播

如果還沒找到組織,請掃碼入羣,屆時我們會在羣內開啓直播。

截止時間:12月31日晚18:00

如果你是一位醉心開源的 Gopher,擁有自己的開源項目和故事,歡迎點擊“閱讀原文”填寫問卷進行報名,小編會及時聯繫你哦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章