Go言語でのSinatra的Web Application frameworkは、「martini」がいい感じっぽい

読了まで:約4分


概要: という私見です。


こんにちま!

いつも心に狂気山脈、悪い意味で薬が恋人、にゃるらコト岡村 直樹(もうすぐ 26 歳)です。最近うつの症状が出てない方が珍しくなくなってきて、精神的にちょっとピンチだなーと淡々と思っているのですが、皆様方におかれましてはいかがお過ごしでしょうか。

つーか、最近は本当に調子が悪くて、昼メシ食って一時間後ぐらいが不調のピークなのですが、とりあえず、今はまだ正気を保てているので、プログラミングネタで記事を書いておきたいと思います。


で、まあ僕の本当に怖いうつ病の話は良いとして、最近、割と体調がマシな時には、Golang で今まで放置しきってきた Web サービスのプログラミングとかやっているのですが、その時に、

という Web Application framework を気に入って使ってるので、今日はそれを紹介したいと思います。

1. martini って何ぞや?

さっきもリンクを貼った、

は、

  • Sinatra (Ruby)
  • Express (Node.js)

辺りをインスパイアした Golang 用の Web Applicaiton framework で、 martiniREADME.md からサンプルコードを引用すると、

package main
import "github.com/codegangsta/martini"
func main() {
m := martini.Classic()
m.Get("/", func() string {
return "Hello world!"
})
m.Run()
}

という感じの、まあいわゆる、

  • Sinatra 系 Web Application framework

の一員みたいなヤツです。

で、こいつの特長としては、

  1. Sinatra と Express インスパイアな API
  2. Application Instance が Golang の http.HandlerFunc と互換
  3. あとミドルウェアもそこそこそろっていて、かつ書きやすい

という感じです。

まあ、martini は、Golang の特性上、Sinatra ほど協力な DSL とかは提供できないので、API としては Node.js の Express っぽい感じですが、中身としては、まあ Sinatra 系だよねって感じですね。

2. なぜ僕は martini を気に入ったか

端的に言えば、

  • Catalyst (Perl)
  • Ruby on Rails (Ruby)
  • Django (Python)

みたいなフレームワークを見ると、

アイエエエ!? くぁ w せ drftgy ふじこ lp;

ってなるからです。

いやまあたぶん、僕の技術力が低かった頃に、Perl の Catalyst を触ろうとして爆死したのが原因だと思うんですが、まあ正直、コードを書くのに入り組んだコード書かなきゃ! みたいなフレームワークはなんかダメなんですよねぇ。一応 Mojolicious とか Sinatra とか Flask とかは平気なんですけど。

で、あと Sinatra 系 Framework の罠として、

  • ミドルウェアが無いから、○○ するの超めんどい!

っていうのが有ると思うんですが、この martini は、

に大体のミドルウェアがそろっているし、また、結構ミドルウェアの仕様も簡単な感じなので、その辺りが僕が気に入った理由の一つでもあります。

ただまあ、Golang は RDBMS 系の ORM Mapper が乱立してて、正直どれ使えばええんやこれ……っていうところが無い訳ではないので、その辺り、ちょっと Web App 書くにはびみょいですけどね。

3. ちなみに、フルスタックフレームワークは何が有りますか?

えーっと、僕は正直、こういう系の Web Applicaiton framework を見ただけで、

アイエエエ!? くぁ w せ drftgy ふじこ lp;

って成りますが(いやマジで)、一応知っている例を上げておくと、

  1. [[The Revel Web Framework for Go http://robfig.github.io/revel/index.html]]
  2. [[Kocha web application framework for Go http://naoina.github.io/kocha/]]

というのが有ります。どっちもアイエエエ化するので僕は使いませんが。ちなみに Kocha の方は、作者の日本人の方っぽいです。

で、さっきも書きましたけど、僕は本当にこういうフルスタック系が全部ダメで、かなり自分に合わないというか、ストレスフルで アイエエエ してしまうんですが、これ多分、克服しないと、就職としたときとかヤバくね? とか、ちょっとだけ思わなくもないです。が、なんか本当に合わないので、その辺りどうしたもんかなーという感じです。まあ就職した場合、そういうコトは言ってられないとは思うんですけどね。

4. という事で本日は以上です。

あれですね。調子悪いとどうにも Typo しまくるし、また文章も思い浮かばないので、かなりブログを書く効率が落ちてる感があります。っていうか、この文章を打つだけでももう何回も Typo しまくってますからね!

あと、僕は今月末の 28 日、要するにあと四日後に 26 歳の誕生日を迎えるんですが、さすがにこの体調の悪さで誕生日迎えたくねーって感じです。まあ水曜日に診察なので、そのときになんか対策は打たれると思うんですが。

あとまあなんだ、プレゼントは一応誰からでも Welcome です。一応、Amazon のほしいものリストのリンクはフッターのセクションに有ります。


という事で今日は以上です。

いやぁもうちょっと活動限界が近づいてきたので、もうちょっと書きたい事もあったのですが、とりあえず今日はここまでにしておきます。もう限界なので。

あと、やっぱり昨日の夜中に 無貌断片 で記事書いてたのが響いてるかなーという気がしないでも無いので、今日は早く寝たいと思ってます。今はまだ 3:15 PM だけど。

という事で本日の記事は以上で終わります。お疲れさまでした。まる

#FIXME

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。
次に備えて待機中。

今は趣味でプログラミングをして
生活しています。