はじめに
なんだか今日は早く目が覚めてしまったので、久しぶりの朝活。
golang
最近 golang が気になり過ぎているのと、Webアプリ作るフレームワークも出てきている様なので、Java、Scalaときて、第三の言語として扱えたらいいなーなんて思い、今年は真面目に勉強してみようかと。
実は前から既にちょくちょく書いていたのだけど、ちゃんとメモなりなんなりに残すのが大事なんだよね。
golang で書けるフレームワーク
フレームワークは僕が調べた中では、 martini というものが一番人気らしいのだけど、みんなが使っているものを勉強してもなーという天邪鬼な所があるので(Scalaの勉強を始めた時、周りの誰も使っていなかった)、 各フレームワークのベンチマーク を参考に、 echo というフレームワークを試すことにした。
なお、フレームワーク選びについては、下記Qiitaの記事を参考にさせていただいた。僕のブログ、というかこのエントリー含めてただのメモに比べると、こういう有益な記事には頭が上がらないっすね。
golang のインストール
いつも通りにbrew
$ brew install go
$GOPATH の設定
GOPATHが無いと色々不便(というか動かない?)みたい。
bashrcのPATHに、下記の様な感じで追加する。
export GOPATH=$HOME/.go export PATH=$PATH:$GOPATH
$ go version go version go1.7.5 darwin/amd64
echo の入手
go get
コマンドで入手
go get -u github.com/labstack/echo
入手すると、 $GOPATH
のディレクトリに格納される(ココらへんは go get
コマンドの話か)。
Helloworld
メモとか言っておきながら、やっぱり参考にする オフィシャルサイトのガイド そのまま。
HelloWorld
package main import ( "net/http" "github.com/labstack/echo" ) func main() { e := echo.New() e.GET("/", func(c echo.Context) error { return c.String(http.StatusOK, "Hello, World!") }) e.Logger.Fatal(e.Start(":1323")) }
起動
$ go run helloworld.go ⇛ http server started on [::]:1323
localhost:1323 にアクセスすると、 Hello, World!
と表示されるハズ。
echo のサンプルソース
下記に echo のサンプルソースが存在する。非常に参考になる。
~/.go/src/github.com/labstack/echo/cookbook
- auto-tls
- cors
- crud
- embed-resources
- file-upload
- google-app-engine
- graceful-shutdown
- hello-world
- http2
- jsonp
- jwt
- middleware
- streaming-response
- subdomains
- websocket
見た感じ、crudやらfile uploadやらtwitter oath認証やらなんでも揃っているので、組み合わせるだけでアプリが作れそうな勢いw
次回は、このcrudを参考にし、MVCモデルの様にアプリを構築出来るようにするための第1歩として
- router.go
- listUser.go
- createUser.go
- updateUser.go
- deleteUser.go
に分割してみる。