【随時更新】Go言語の実用的パッケージと㊙情報
Ateam Hikkoshi Samurai Inc. Advent Calendar 2017 17日目です。
本日はエイチーム引越し侍の新卒1年目、Webエンジニアの@nrainieroが担当します。
Go言語の初心者で
いろんな情報を集めているので
ここにまとめていきたいと思います。
随時更新なので、
Go言語に興味のある方は、いいね、ストックをしておくと良いと思います!
参考になる記事・サイト
-
Go言語の初心者が見ると幸せになれる場所 #golang
- タイトルの通り一通り目を通しておくと幸せになれます。
- 初心者の方はここで情報を集めるといいです!
- タイトルの通り一通り目を通しておくと幸せになれます。
実用的なパッケージ一覧
※ ★はgithubのスターの数です(2017/12/17時点)
パッケージ依存管理
node.jsで言うpackage.jsonみたいな役割のもの
◆dep ★6351star
Glide から dep に移行せよ
とあるのでこれを使っておけば大丈夫だと思います
◆glide ★5865star
一世代前の依存管理ツール
今から管理するならdepを使いましょう
webフレームワーク
◆Gin ★13552star
https://github.com/gin-gonic/gin
フルスタックのフレームワークで
Martiniの40倍の速度らしいです笑
◆beego ★13339star
https://github.com/astaxie/beego
フルスタックのフレームワークで
ORMなどもサポートしています。
◆Martini ★9816star
https://github.com/go-martini/martini
お酒の名前のフレームワーク
公式の日本語のドキュメントがあります!
◆Revel ★9187star
https://github.com/revel/revel
MVCのフルスタックフレームワーク
Railsみたいなもんかな。
コードを編集した際に自動コンパイルしてくれたり、devモードがあったりと開発しやすそう。
◆Echo ★8914star
https://github.com/labstack/echo
軽量で高速なwebフレームワーク
カスタマイズしやすい
◆iris ★8524star
https://github.com/kataras/iris
最速のフレームワークと謳っています!!
ドキュメントが充実しているのでおすすめです。
◆Goji ★3351star
https://github.com/zenazn/goji
よく知らない。。
◆goa ★2474star
https://github.com/goadesign/goa
個人的におすすめ★
APIフレームワークでバリデーションなどに気を使わず
ロジックだけに専念できるようになっている。
swaggerUIなどと連携するとすごく良い!!
だが、クセが強い。。
httpクライアント
◆http
https://golang.org/pkg/net/http/
標準パッケージ
HTTPクライアントの処理が簡単に書けます!
websocket
◆websocket
https://godoc.org/golang.org/x/net/websocket
標準パッケージ
◆websocket ★4702star
https://github.com/gorilla/websocket
標準と名前がかぶってるが
外部パッケージ
フォーム系
◆binding ★630star
https://github.com/mholt/binding
バリデーションに使える
DB
◆mysql ★3355star
https://github.com/go-sql-driver/mysql
mysqlのドライバー
◆pq ★3355star
https://github.com/lib/pq
PostgreSQLのドライバー
◆redigo ★3816star
https://github.com/garyburd/redigo
redisも扱えます!
◆migrate ★1820star
https://github.com/mattes/migrate
DBマイグレーションツール
Go project以外にも使えます!
◆goose
https://bitbucket.org/liamstask/goose/
DBマイグレーションツール
◆xo ★1403star
https://github.com/xo/xo
DBのスキーマーをGoの自動でstructにしてくれる便利なもの
サーバー
◆golang-stats-api-handler ★155star
https://github.com/fukata/golang-stats-api-handler
サーバーのシステム情報を取得できる
ZabbixやMunin用のプラグインもある
設定ファイル読み書き
◆encoding/json
https://golang.org/pkg/encoding/json/
jsonファイル
◆toml ★1736star
https://github.com/BurntSushi/toml
tomlファイル
◆yaml ★1727star
https://github.com/go-yaml/yaml
yamlファイル
◆xml
https://golang.org/pkg/encoding/xml/
xmlファイル
◆ini ★759star
https://github.com/go-ini/ini
iniファイル
ロギング
◆logrus ★6144star
https://github.com/sirupsen/logrus
ログをいい感じに出してくれる
json形式でも出してくれる。
クエリビルダー
◆squirrel ★1317star
https://github.com/Masterminds/squirrel
SQLジェネレーター
ORM - オブジェクト関係マッピング
goの構造体とdbを紐付けてくれるものです。
◆gorm ★7320star
GoのORMで迷ったらこれを使っておけば良さそうです!
githubのstar数で見ても1強!!
◆gorp ★2629star
https://github.com/go-gorp/gorp
SELCT文で生SQLを書かないといけないらしい。。。
◆xorm ★2629star
https://github.com/go-xorm/xorm
使ってる人がちらほらいるイメージがあります
◆genmai ★146star
https://github.com/naoina/genmai
玄米。。。
◆awesome-go ★26078star
https://github.com/avelino/awesome-go
パッケージ一覧リスト!
最後に
Ateam Hikkoshi Samurai Inc. Advent Calendar 2017 17日目いかがでしたでしょうか。
間違ってたり、追加したほうがいい情報があれば教えてくれと幸いです!
明日はエイチーム引越し侍、@hironeyさんがLINE@とGoogleHomeについて書いてくれます。
お楽しみに。
追伸
株式会社エイチーム引越し侍では、一緒にサイト改善をしてくれるWebエンジニアを募集しています。エイチームグループのエンジニアとして働きたい!という方は是非、以下のリンクから応募してください。
皆様からのご応募、お待ちしております!!