yosemite's blog

About technology, books, diary

Go 言語のフレームワーク比較

golang
golang

はじめに

Golang を勉強し始めて約 1 ヶ月が経ちました。
簡単なプログラムは書けるようになり、1 つのプロジェクトについてもリリースまで無事完了しました。
次の案件ではフレームワークを使いそうな気がしているので、先駆けて Golang にはどんなフレームワークがあるか調べてみました。

TL;DR

他の言語に比べてデファクト的なフレームワークは存在しない。 シンプルなものもあれば、フルスタック的なものもあり、基本的に net/http を元に機能拡張されているものが多い。
フレームワークを使用しないという選択肢も視野に入れて、プロダクトにあった技術選定をすべき。

フレームワーク一覧

今回調べたフレームワークの一覧です。
これらが全てではないが、個人的に気になったものを比較対象としました。

  • Echo
  • Revel
  • Gin
  • Chi
  • Martini

フレームワークの詳細

Echo ʕ ◔ϖ◔ʔ

概要

特徴

参考記事

Revel ʕ ◔ϖ◔ʔ

概要

特徴

  • Web アプリケーションに必要な機能が揃っている
  • revel コマンドが使える
  • コードを編集すると自動的にコンパイルされる
  • dev モードの実行が可能で、デバッグが容易

参考記事

Gin ʕ ◔ϖ◔ʔ

概要

特徴

参考記事

Chi ʕ ◔ϖ◔ʔ

概要

特徴

  • 軽量で高速
  • net/http 100% 互換
  • モジューラ、コンポーサブルな設計
  • Context を簡単に制御
  • ドキュメントを自動で生成
  • 外部依存性なし

参考記事

Martini ʕ ◔ϖ◔ʔ

概要

特徴

  • モジュール形式のWebアプリケーションサービスを作成に向いている
  • Python の Flask に似ている
  • 充実したミドルウェア

参考記事

ベンチマーク

najeira/go-frameworks-benchmark

Golang フレームワーク採用事例

[おまけ ʕ ◔ϖ◔ʔ]フレームワークなし採用事例

他にも Golang フレームワークを比較している方達

おわりに

今回は、Golangフレームワークについて調べたものを紹介しました。
最初にも述べたが、プロダクトの目指すものに応じて適切な技術選定をする必要があると思っているので、適材適所で使っていければと思います。

最後まで見てくださりありがとうございました。

それじゃまた🙋‍♂️