【随時更新】Go言語(golang)の実用的なパッケージと㊙情報 2017/12/17

# 【随時更新】Go言語の実用的パッケージと㊙情報

Ateam Hikkoshi Samurai Inc. Advent Calendar 2017 17日目です。
本日はエイチーム引越し侍の新卒1年目、Webエンジニアの@nrainieroが担当します。

Go言語の初心者で
いろんな情報を集めているので
ここにまとめていきたいと思います。

随時更新なので、
Go言語に興味のある方は、いいね、ストックをしておくと良いと思います！:relaxed:

# 参考になる記事・サイト

- [Go言語の初心者が見ると幸せになれる場所　#golang](https://qiita.com/tenntenn/items/0e33a4959250d1a55045)
    - タイトルの通り一通り目を通しておくと幸せになれます。
        - 初心者の方はここで情報を集めるといいです！

# 実用的なパッケージ一覧
※ ★はgithubのスターの数です(2017/12/17時点)

## パッケージ依存管理
node.jsで言うpackage.jsonみたいな役割のもの

### ◆dep ★6351star
[Glide から dep に移行せよ](https://qiita.com/spiegel-im-spiegel/items/e931ad1a7565d02d179e)
とあるのでこれを使っておけば大丈夫だと思います

### ◆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
http://jinzhu.github.io/gorm

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日目いかがでしたでしょうか。
間違ってたり、追加したほうがいい情報があれば教えてくれと幸いです！
明日は[エイチーム引越し侍](http://hikkoshi.a-tm.co.jp/)、@hironeyさんがLINE@とGoogleHomeについて書いてくれます。
お楽しみに。

# 追伸
株式会社エイチーム引越し侍では、一緒にサイト改善をしてくれるWebエンジニアを募集しています。エイチームグループのエンジニアとして働きたい！という方は是非、以下のリンクから応募してください。
皆様からのご応募、お待ちしております！！

[エイチームグループ採用サイト（Web開発エンジニア職）](http://hikkoshi.a-tm.co.jp/recruit/request.php?ea=rayqiita_golangpkg)