golang Revel 導入編 [Mac]

こんにちは、Yuuichi(@WestHillWorker)です。

今回は、2016年頃にgoで簡単なweb表示を作成してから、goにあまり触れる機会がありませんでした…


goでゼロベースからWebサービスを作ってみたいなと思ったので、今後はWebサービス作成するところまでやってみようと思います。

今回はその導入編となります。
いくつかWebフレームワークがある中で、Revelを選択してみました。
“revel"
調べたところ、日本でも何社か実際にサービスで利用している企業もあるとのこと
採用実績もあるし、GitHub Star数も9000超え!!
使ってみるしかない!

スポンサーリンク

revelとは?

Go言語のための生産性の高いWeb FrameWorkです。
コマンドラインから自身が作成したいアプリケーションの雛形を簡単に生成してくれます。
コンパイルに関しても手厚く、revel run < アプリケーション名>でコンパイルしてくれます。
コマンド何回かうつだけで、ローカル環境に簡単なweb viewを表示できる。

特に個人的にいいなと思ったのRailsやPlay Frameworkを元にModel-View-Controller(MVC)パターンを使用しているため、何らかのMVCのフレームワークを使ったことがある方は馴染みやすいのではないかという点でした。
公式サイトRevel

ひとまず導入してみよう

Goは事前にインストールしている状態であること。

Go install

Go未インストールの方のみ実行下さい。

$ brew install go
$ go version
go version go1.10.2 darwin/amd64

GOPATHの設定

Goインストール済みの方はここから実行下さい。
※既にGOPATH設定済みの方は、ここもスキップして下さい。

// 作業dir作成
$ mkdir ~/gocode

$ export GOPATH=~/gocode
// 次回起動用にパスを設定しておく bashの方
$ echo export GOPATH=$GOPATH >> ~/.bashrc
or
// zshの方
$ echo export GOPATH=$GOPATH >> ~/.zshrc

Revel FrameWorkとCLIを取得

GOPATHまでできている方はここから実行下さい。

$ cd $GOPATH
$ go get github.com/revel/revel
$ go get github.com/revel/cmd/revel
$ export PATH="$PATH:$GOPATH/bin"

ついにrevelのコマンドが使えるようになります。

$ revel help
~
~ revel! http://revel.github.io
~
usage: revel command [arguments]

The commands are:

    new         create a skeleton Revel application
    run         run a Revel application
    build       build a Revel application (e.g. for deployment)
    package     package a Revel application (e.g. for deployment)
    clean       clean a Revel application's temp files
    test        run all tests from the command-line
    version     displays the Revel Framework and Go version

Use "revel help [command]" for more information.

revelのアプリケーションの骨組み作成、アプリケーション実行などなど。

アプリ雛形作成

$ cd $GOPATH
$ revel new myapp
// ※myappは自身が作りたいアプリケーション名なのでなんでも大丈夫です。

アプリケーションのスケルトンは、以下のようになっています。

$ tree myapp/
myapp/
├── README.md
├── app
│   ├── controllers
│   │   └── app.go
│   ├── init.go
│   ├── routes
│   │   └── routes.go
│   ├── tmp
│   │   └── main.go
│   └── views
│       ├── App
│       │   └── Index.html
│       ├── debug.html
│       ├── errors
│       │   ├── 404.html
│       │   └── 500.html
│       ├── flash.html
│       ├── footer.html
│       └── header.html
├── conf
│   ├── app.conf
│   └── routes
├── messages
│   └── sample.en
├── public
│   ├── css
│   │   └── bootstrap-3.3.6.min.css
│   ├── fonts
│   │   ├── glyphicons-halflings-regular.ttf
│   │   ├── glyphicons-halflings-regular.woff
│   │   └── glyphicons-halflings-regular.woff2
│   ├── img
│   │   └── favicon.png
│   └── js
│       ├── bootstrap-3.3.6.min.js
│       └── jquery-2.2.4.min.js
└── tests
    └── apptest.go

15 directories, 23 files

最初からbootstrap / jqueryとかもinstallされている様子。

アプリケーション実行

$ revel run myapp

アプリケーションにアクセスしてみましょう!!
ブラウザーを開いてhttp://localhost:9000/にアクセスすると、アプリの準備ができているという通知が表示されます。

revel start up goal
お疲れ様でした!!
これであなたもrevel 使いの第一歩!

まとめ

Railsとか同様で、馴染み深い感じでFrameWorkを利用することができました。
ただ、開発する上でどのようなフローで進めていけば良いかがまだわからないことが多いので、次回は開発フローについて記事にできたらと思います。


スポンサーリンク
PAGE TOP