本格的な開発に欠かせないフレームワーク。
go言語にも様々なフレームワークが存在します。
この記事では、数あるgo言語フレームワークのうち、代表的なフレームワークを取り上げ、その概要と特徴をまとめています。
go言語のフレームワークにはどんなものがある?
目次
go言語の代表的なフレームワークには下記のようなものが挙げられますE
- Echo
- Gin
- Martini
- Goji
- iris
- beego
- Revel
1つずつ、詳しく解説していきます。
Echo
2015年に登場した比較的新しい軽量フレームワークです。
それまで高速で有名であったGinよりもさらに優れたパフォーマンスを発揮すると言われています。
コミュニティでの開発が盛んで、随時、研究・開発が進んでいる今注目のフレームワークです。
初心者でも導入しやすいように、公式ドキュメントも用意されていますし、日本語情報も他のフレームワークと比較して充実しています。
RESTful API向けに作られており、小規模~中規模のアプリケーションを想定した設計になっています。
HTTPのレスポンスを送るための関数をサポートしていたり、ファイルアップロードやWebSockectが使用できるなど、他のフレームワークにはない機能も多く実装されています。
Gin
古くから存在している人気のフレームワークの一つです。
Echoの登場で、注目度が薄れた感がありますが、Echoの開発の参考にされているように、必要十分な機能も実装されており、デファクトスタンダード的な位置付けにあるフレームワークです。
goの初期からあるMartiniというフレームワークを参考に、Martiniの40倍の高速化を実現したフレームワークです。
Martini
モジュール形式のWebアプリケーションサービスを作成するためのフレームワークです。
PythonやFlaskのような感覚で、少ない行で簡単にコーディングすることが可能です。
日本語のドキュメントもあり、ミドルウェアも充実しているので使いやすいのですが、公式のサポートが遅かったり、Github上での更新が最近はないという点に不安が残ります。
Goji
Net/httpとの互換性をもつフレームワークです。
Echoと同様に小規模~中規模のアプリケーションを想定した、シンプルな設計になっています。
パフォーマンスはGinに次いで速く、ミドルウェアに関しても必要十分なものは一通り揃っているバランスのとれたフレームワークです。
RubyのSinatraに似たURLパターンと正規パターンに加えてカスタムパターンを定義することができるので、シンプルな設計ながら拡張性と自由度が担保されています。
Pairsなどのマッチングサービスを運営しているエウレカではこのGojiが採用されているようです。
iris
ベンチマーク最速を謳っているフレームワークです。
Webサーバー、デスクトップ、スマートフォンなどデバイスを選ばず高速なパフォーマンスを発揮することができます。
サンプル集などのドキュメントがかなり充実しているので、学習コストが少なく、初めてRESTful APIに挑戦してみようという人にもオススメのフレームワークです。
beego
Web用のMVCフレームワークで、Beeツールを利用することで様々な機能の利用が可能なフルスタックなフレームワークです。
RubyのSinatraを元に設計されており、API開発に向いています。
専用のCLIツールがあったり、自動テスト機能などの機能も備わっています。
中華圏と中心とした海外では、Revelと並んで人気のあるフレームワークですが、公式の日本語ドキュメントの更新はあまり頻繁ではなく、英語版のドキュメントやソースを参考にしなくてはならないという点で、学習コストは高めかもしれません。
Revel
RailsやPlay Frameworkなどの人気のフレームワークを参考に設計されたフルスタックフレームワークです。
他の言語でMVCフレームワークを使用した事のある方には親しみやすいフレームワークかもしれません。
機能も豊富で、コードを編集すると自動的にコンパイルを実行してくれる、デバッグモードの実行が可能など、開発する上で便利な機能が実装されている点も嬉しい特徴です。
多機能なフレームワークなので、どちらかというと大規模なアプリケーション開発向けです。
パーソルキャリアが運営するMIIDASというサービスでは、このRevelが採用されているようです。
goではフルスタックよりも軽量なマイクロフレームワークが主流
goのフレームワークは、大きく軽量で機能も比較的シンプルなマイクロフレームワークとフルスタックなフレームワークの2つに分類できます。
ただ、goはもともと小さくてシンプルなアプリケーションを組み合わせて使うことが推奨されているため、フルスタックフレームワークよりも、どちらかというと軽量フレームワークの方が主流でよく採用される傾向があるようです。
これからgoのフレームワークを触ってみようかな・・・という方は、EchoやGojiといった軽量フレームワークを触ってみるのが良いかもしれません。
Goのおすすめ求人案件
・新宿のオフィスで求人サービスの運営、構築
・バックエンドでGo言語を使用する他、SwiftやKotlinを使ったAndroidやiOSのアプリ開発、JavaScript等を使ったWeb管理画面の機能開発など幅広い仕事に携われる
・チームでの開発になるのでgithubの経験は必須
・六本木or新宿のオフィスで、話題のFintech関連のサービスに携わる
・Go言語を使ったWebアプリケーションおよびAPI開発
株式会社adanでは、独立やフリーランスを目指すエンジニアの方への転職・キャリア相談やフリーランス案件の紹介・サポートを行っています。
ご紹介しているのは、大手企業や人気企業の案件が中心で、安心で働きやすい優良求人のみを取り扱いしています。
現場の担当者と直接やりとりをしているので、勤務時間や年収交渉も間に入ってサポートが可能です。
少しでも興味を持っていただけた方は、ぜひお気軽にお問い合わせください。
企業の情報やエンジニアとしてのキャリアアップの方法、現在の待遇(給料・報酬)、未経験からのステップアップ方法などのご相談を受け付けています。
お気軽にお問合せください。