BeegoはGo言語ベースのWebアプリケーションフレームワークです。『Sinatra』にインスパイアされたことでも知られており、特に中国で一番人気を集めるGo言語フレームワークとなっております。この記事ではBeegoを理解するために初心者でも分かる歴史、特徴などの基礎知識を簡単に解説していきます。
Beego(ビーゴ)とはGo言語に活用されるAstaXie氏によって開発されたフルスタックWebフレームワークです。BeegoにはAPIやWebアプリ、バックエンドなどのGo言語アプリケーションを迅速に開発するためのRESTful HTTPフレームワークとして誕生しました。インターフェースや構造体埋め込みなどのGo言語固有の機能が統合されています。モデルになったフレームワークはRubyで有名なSinatraといわれております。特徴としてMVCモデル、自動テスト機能、RESTfulサポートなどが挙げられます。『HUAWEI社』を筆頭に数多くの中国系有名企業を顧客として抱えており、中国で一番人気を集めるGo言語フレームワークとなっております。
Go言語とはGoogle社にてロバート・グリーセマー氏等が中心となって2009年に開発されたC言語をモデルとするコンパイル言語です。Go言語は「シンプルで信頼性が高く、効率的なソフトウェアを簡単に構築できるオープンソースのプログラミング言語」を公式サイトにて掲げております。Googleが開発したこともあり誕生当初から高い注目を集めており、2018年ビズリーチ社の調査によるとGo言語は最も年収の高いプログラミング言語として発表されその注目度の高さが伺えました。
用途としてWebアプリケーションやWebサーバーの開発に度々活用されますが、Web系以外にもスマートフォンアプリ、AI開発などでも注目を集めております。特徴として『高速な処理』『並行処理に強い』などが挙げられます。人気、注目度共に数あるプログラミング言語の中で最前線を走る言語の一つと言えます。
SinatraとはRubyに活用されるブレイク・ミゼラニー(Blake Mizerany)氏によって開発されたオープンソースのオブジェクト指向Webアプリケーションフレームワークです。2007年に誕生し『最小限の労力でRubyでWebアプリケーションをすばやく作成するためのDSL』を掲げております。特徴として軽量フレームワークと言われており、提供している機能が必要最低限で小規模なウェブサイトの構築に向いております。またRuby on Railsとは対となる考え方で作成されているというのも特徴の一つです。Sinatraは世界的にも名だたる企業や団体に採用されており代表的なところではアップルBBC、LinkedeIn、スタンフォード大学、RedHatなどが挙げられます。
Beegoの読み方は『ビーゴ』です。
名前の由来は調査の結果出てきませんでした。irisを直訳すると「虹彩」といった意味があるそうです。
BeegoはAstaXie氏によってGo言語ベースのWebアプリケーションフレームワークとして開発され2012年に誕生しました。Ruby向けフレームワークである「Sinatra」やPython向けフレームワーク「Tornado」からインスピレーションを受けて開発されたという経緯があります。github上に記録された履歴によると2013年5月にリリースされた「Beego v0.6.0」が一番古いものとなっておりました。現在(2021年7月時点)では最新バージョンを「Beego v2.0.0」としております。簡単に以下の年表にまとめておりますのでご覧ください。
年代 | 内容 |
2012年 | 「Beego」誕生 |
2013年5月 | 「Beego v0.6.0」リリース |
2013年12月 | 「Beego v1.0.1」リリース |
2015年6月 | 「Beego v1.5.0」リリース |
2016年1月 | 「Beego v1.6.0」リリース |
2016年8月 | 「Beego v1.7.0」リリース |
2017年3月 | 「Beego v1.8.0」リリース |
2017年7月 | 「Beego v1.9.0」リリース |
2018年7月 | 「Beego v1.10.0」リリース |
2020年11月 | 「Beego v2.0.0」リリース |
Beegoの特徴を見ていきましょう。
BeegoはMVCモデルという特徴があります。MVCモデルとはユーザインタフェースをもつアプリケーションソフトウェアを構築する上でプログラムの中身を整理するためのデザインパターンです。MVCモデルを採用したフレームワークは数多く存在し、中でも代表的なものがJava言語においては『Struts』Rubyにおいては『Ruby on Rails』などが挙げられます。
Beegolはフルスタックフレームワークという特徴があります。フルスタックフレームワークとはWebアプリケーションフレームワークの分類の一つで、中でもWebシステム開発に必要な機能がほぼすべてが用意されているものを指します。ユーザインターフェースやデータベース、セキュリティなどの全てが一つのフレームワークで実現されているのでビジネスロジックに集中できるというメリットがあります。
Beegoは高性能であるという特徴があります。ネイティブのGohttpパッケージを使用して、リクエストとGoルーティンの効率的な同時実行を処理します。大量のトラフィックも問題なく処理することが可能です。
Beego以外のGo言語ベースによるシステム開発に用いられる代表的なフレームワークを紹介させていただきます。
Echo(エコー)とはGo言語に活用されるLabStackによって管理される軽量なWebアプリケーションフレームワークです。前述のGinをモデルに誕生したフレームワークとして小規模から中規模のWebアプリケーション開発に向いており、軽量フレームワークとして最も注目を集めているフレームワークの一つです。高性能でいて、豊富な拡張機能、そして軽量のフレームワークであることが人気の理由となっております。またRESTの原則に従って設計されたAPIを持つことも特徴の一つです。Echoで記述されたソースコードの読みやすさには定評があり開発効率の面でも高い評価を集めております。
Gin(ジン)とはGo言語に活用されるGinチームによって管理されるWebアプリケーションフレームワークです。Martini(マティーニ)をモデルに誕生したフレームワークとして同フレームワークのようなAPIを充実させており、パフォーマンスにおいては最大40倍もの高速性能を実現しております。他にも『ミドルウェアのサポート』『クラッシュフリー』などの様々な特徴が挙げられます。
GinではHTTPリクエスト中に発生したトラブルをキャッチして回復できます。このようにサーバーは常に使用可能になります。同言語に用いられるEchoというフレームワークにも参考にされており、Go言語におけるフレームワークとして初期の頃から人気を集めております。
Revel(レベル)とはGo言語に活用されるMVCモデルのフルスタックWebフレームワークです。JavaやScalaで活用されることで有名な『Play Framework』をモデルに開発されました。フルスタックフレームワークのためWebアプリケーション開発に必要な全てが取り揃えられております。Revelではプログラマーがソースコードを編集すると、自動コンパイルを行う仕様になっております。処理性能も高く、速度も速いことから人気を集めております。『Gin』や『Echo』と比較しても多機能であることが売りであることから大規模なアプリケーション開発に向いています。
Beegoを理解するために初心者でも分かる歴史、特徴などの基礎知識を簡単に解説させていただきました。Beegoを一言で表すと『Go言語ベースのSinatraにインスパイアされたフルスタックなWebアプリケーションフレームワーク』です。特徴として「MVCモデル」「フルスタックフレームワーク」「高性能」などが挙げられます。Beegoについてこの記事に記載されている最低限の内容は理解をしておくようにしましょう。