アップデート頻度判断基準→githubのコミットログが直近にあるかどうか
学習のしやすさの判断基準→学習のしやすさ調査
情報の多さの判断基準→ドキュメント充実かどうか、Qiitaなど記事を検索結果の多さ
学習のしやすさ調査:判断基準
-
- コードがぱっと見分かりやすいかどうか
-
- 公式ドキュメントが日本語対応か
-
- 公式ドキュメントが充実しているか
- 情報が多いかどうか
比較表
結果
-
- Echo
-
- Beego
-
- Martini, Gin, Revel, goa
-
- goMicro
- goKit
特徴、気付いたこと
Beego
フルスタックなWebアプリケーションフレームワーク。ORマッパーまでサポート。RubyのSinatraを元に設計されている。
Gin
比較的軽量なフルスタックWebアプリケーションフレームワーク。マティーニと類似のAPIを提供している。
Martini
モジュール形式のWebアプリケーションサービスフレームワーク。
Revel
JavaのPlay Frameworkを参考に設計されたフルスタックフレームワーク。
Echo
RESTAPI向けのため、RESTの原則に沿った形で設計されたAPIを持っている。Ginを超える程の高速処理。
Goa
デザインコード(goa API Design Language) のファイルを作成するだけで、マイクロサービスのコアとなるファイルを生成してくれる。
Go kit
独自のloadbalancerパッケージが担う、DNSやconsulなど様々なプラグインを追加可能。tracingパッケージを用いて、どの経由のリクエストで出力されたログなのか追いやすいみたい。
micro
マイクロサービスのツールキットとして、各サーバ/サービスツールをそれぞれ分割して別々にパッケージされたもの。中核となるgo-micro、Webサービスを展開するためのgo-web、モニタリングツールのmonitor-web、サービスをトレースするためのtrace-web など、マイクロサービスを構築および運用するためのパッケージが揃っている。
速度比較
参考1

参考2
GitHub – julienschmidt/go-http-routing-benchmark: Go HTTP request router and web framework benchmark
参考3

参考4
Round 14 results – TechEmpower Framework Benchmarks
GitHub – TechEmpower/FrameworkBenchmarks: Source code for the framework benchmarking project
事例
Gin
GoでJWT認証するAPI Gatewayを作成する – Tech Blog – Recruit Lifestyle Engineer
フレクトのクラウドblog(New): Go言語でトランザクション制御のラッパー関数を作った話
GoでAPIサーバーの開発からデプロイまで – Qiita
Martini
GAE/Go 事例紹介
Echo
[VoicyがGoLangとEchoを採択した理由。 – Voicy Tech Blog]
APIにGolangを導入しました – Cluex Developersブログ
mofur x golang (前篇) (フェンリル | デベロッパーズブログ)
かけだし Gopher におくる Golang 製 Web Framework echo の logging について | Goodpatch Blog
goa
アイスタイルにおけるgoa導入事例 / case studies of goa in istyle inc // Speaker Deck
goaを導入した話 // Speaker Deck
フレームワークを使わない
初めてGolangで大規模Microservicesを作り得た教訓
教訓1 フレームワークに拘らない
GoでとあるAPIサーバを実装し直した話 – Mercari Engineering Blog
最初は Revel で書かれていた → フレームワークを使わずに書き直した
GitHub スター数の推移

参考
Go言語おすすめフレームワークまとめ | IT/Web系の起業家・フリーランスに贈る、すべらない起業論
継続的なAPI開発に。Goのマイクロサービスまとめ | NTT Communications Developer Portal
go言語でのマイクロサービスフレームワークの雑な比較メモ – Qiita
マイクロサービスのフレームワークまとめ [不定期更新](2017/02/25更新) – Qiita
実例に学ぶGoのアーキテクチャ – 「開発スピード優先」でGMOペパボが採用したのはMVC
その他
Gunosy – 高速な広告配信サーバの作り方のコツ
ぐるなびにおけるGo言語の活用