Go 包
beego。算起來用了三年beego了。當初選擇用它的理由很簡單,文件是中文的,開發者是中國的,交流方便。優點就是用得人較多,框架整合度高,工具比較多。不過從1.6開始相容性大大降低開始對它無感。現在越來越覺得beego框架設計的太重,Golang的設計特點就是輕便,把各個功能包組裝起來用。比如配置它的config包,不用又不行,因為框架啟動就會呼叫。最近大家都在推薦gin,有興趣可以試試。
beego/logs。日誌包一直在用beego內建的logs包。它有一個特點就是支援日誌自動分割,可以按行數分割或者按日期分割。目前還沒有發現支援此功能別的日誌包,有的話大家給我推薦一下。
beego/orm。我的服務對資料庫操作很少,orm只是簡單用用。之前還用過grop和xorm。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結構體程式碼。
會持續更新。