Awesome Go

Cyeam發表於2017-05-10

Go 包

  • beego。算起來用了三年beego了。當初選擇用它的理由很簡單,文件是中文的,開發者是中國的,交流方便。優點就是用得人較多,框架整合度高,工具比較多。不過從1.6開始相容性大大降低開始對它無感。現在越來越覺得beego框架設計的太重,Golang的設計特點就是輕便,把各個功能包組裝起來用。比如配置它的config包,不用又不行,因為框架啟動就會呼叫。最近大家都在推薦gin,有興趣可以試試。

  • beego/logs。日誌包一直在用beego內建的logs包。它有一個特點就是支援日誌自動分割,可以按行數分割或者按日期分割。目前還沒有發現支援此功能別的日誌包,有的話大家給我推薦一下。

  • beego/orm。我的服務對資料庫操作很少,orm只是簡單用用。之前還用過gropxorm。Golang主要是用來做介面,對於資料庫操作都比較簡單,orm高階操作基本用不到。所以對我來說這些orm功能都差不多。。。

  • redigo。連Redis必備。功能很完善。

  • goquery。用來解析HTML。開發爬蟲都會用到它。

  • goreq。一個HTTP請求包。之前會用它是因為它支援Gzip壓縮。

  • viper。一個配置包。支援解析各種格式的配置檔案,最讓我驚喜的是它支援etcd。

  • gods。各種資料結構的Golang實現。這些程式碼生產環境沒有直接用到過,不過自己寫的時候可以借鑑一下。

  • ffjson。根據Golang的結構體自動生成MarshalJSON方法從而避免原生包通過反射編碼引起的垃圾回收的問題。

  • godep。說實話Golang對包管理不太友好。有一個專案用了godep來做版本管理,每次都要執行好多命令真是麻煩。Golang新版內建包管理了,這個可以放棄使用了。

  • bitset。這個包已經在生產環境使用了,它是Bitmap的Golang實現。底層用uint64切片儲存資料。效能是內建map的40倍。

  • jobrunner。一個Crontab包。beego內建的Crontab包之前有bug,只能找個新的。我關注這個的包的時候才100個Star,不過好在好用。

Go 工具

  • Cleaner Go。程式碼檢測相關不錯的文章。

    • 靜態程式碼檢測 staticcheck.exe $(glide.exe nv)
    • 無用程式碼檢測 unused.exe $(glide.exe nv)
    • 程式碼簡化建議 gosimple.exe $(glide.exe nv)
    • 原生檢測 go vet
  • gojson。一個工具,可以通過Json格式的文字生成Golang結構體程式碼。


會持續更新。

相關文章