カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

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

概要: という私見です。


こんにちま!

いつも心に狂気山脈、悪い意味で薬が恋人、にゃるらコト岡村 直樹(もうすぐ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
  2. Kocha web application framework for Go

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

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

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

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

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

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


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

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

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

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