僕がShibuya.jsに参加してきたたったひとつの理由

今日は仕事を抜けだして、JavaScriptの勉強会「Shibuya.js」に参加してきました。今回のテーマは「JavaScriptでのテスト」ということで、@t_wadaのtはTestのtとして有名な和田さんはじめ、そうそうたるスピーカーの方々のありがたいお話を聞けて幸せでしたー。感謝!

ちょっとまて。

僕の仕事はそもそもサーバサイドでJavaScriptとか一切書いてないし、JSに限らずそもそもテストとか書いてない。間違いなくあの場で僕が一番の場違い参加者だったでしょう。じゃあなんでそんな僕が、補欠者数が参加者数を上回る人気イベントにわざわざ参加したのかって?

これくらい未知の領域でも勉強会行くのは怖くないよ!

新卒準備カレンダーに限らず、勉強会いいよいいよと言われてますね。でもやっぱりなかなか勉強会に行くというのは最初は腰が重いもの。自分がわかるのなんて◯◯しかないし、◯◯の勉強会なんてそんなにやってないし、やっててもなんかすごそうな人しかいないし。。。とかを言い訳にしてまぁいいやと思ってた時代が僕にもありました。

でも、興味のあることだったら今たとえ大した知識がなくても飛び込んでみるといいですよ。僕が今回JavaScriptを選んだのは当然理由があります。真面目な話、今まではブラウザで動く言語というだけだったのが、サーバサイドにも、クライアントアプリケーションにもどんどん広まりつつあります。否が応にもJavaScriptの相手をする時期は近いなぁという感覚と、何度かチャレンジしてはうまく書けず終わっていったJavaScriptをそろそろ書ける様になりたいと思っていたところだったので、たまたまTwitterでATNDの告知を見たときにこれは行くしか無い!と思ったわけです。

ところがどっこい、アジェンダに書いてあることがさっぱり分からない。これは行ってもなんにもわからないんじゃないか。。。そう思いましたが、恥を恐れず突撃してみました。そう、こんなレベルでも勉強会って行けるんだよ!と書くためにぃぃ!

phantomjs入れてみた

JSでのテストについてみなさんかなり分かりやすく話して頂いたので、初心者でも理解できました(マジ)。ブラウザのテストってどうやるんだろうと思ってましたが、ガチで実際のブラウザを使ったテストとかもあるんですねー。ホントIEとかIEとかIEとかIEとかさえ無ければいいのにですね。

そしてt_wadaさんの発表を聞いて、phantomjsというのが熱そうだなと思いましたのでさっそく手元のMacにいれてみました(CentOSはQt4.7のrpmがみつからなかったのでとりあえず保留)。

Macに入れるのは相当簡単で、下記のページに従ってXcode、Qtの順で入れた後に、qmakeしてあげるだけ。gitないとか言う人はさっさとhomebrewで入れましょう。

$ git clone git://github.com/ariya/phantomjs.git && cd phantomjs
$ qmake -spec macx-g++ && make

では、さっそく動かしてみましょう。phantomjsというのは要はコマンドラインから起動できるブラウザなので、適当にURLを与えるとHTMLを取得してくれて、さらにその上でJavaScriptを動かすことができるらしいです。こちらのコードをそのままお借りしてみました。感謝。

[~/js]$ ./phantomjs/bin/phantomjs.app/Contents/MacOS/phantomjs google_search.js riywo
"id", "title", "url"
http://www.google.co.jp/extern_js/f/CgJqYRICanAgCyswRTgALCswWjgALCswDjgALCswFzgALCswJzgALCswPDgALCswUTgALCswCjgAQB0sKzAWOAAsKzAlOM-IASwrMEA4ACwrMEE4ACwrME04ASwrME44ACwrMFQ4ACwrMGk4ACwrMBg4ACwrMCY4ACyAAjaQAjI/Ywg0O5q6xFI.js:5 SyntaxError: Parse error
0,"りーお@DeNA (riywo) on Twitter","http://twitter.com/riywo"
1,"","http://twitter.com/riywo"
2,"riywo","http://twitter.com/riywo"
3,"As a Futurist…","http://blog.riywo.com/static/"
4,"riywo.com - INDEX","http://riywo.com/"
5,"退学して就職した2009年をやっと振り返ってみた - As a Futurist...","http://blog.riywo.com/2010/01/02/085255"
6,"はてなブックマーク - riywoのブックマーク","http://b.hatena.ne.jp/riywo/"
7,"riywoさんのプロフィール - はてな","http://www.hatena.ne.jp/riywo/"
8,"Under "As a Futurist..."","http://riywo.tumblr.com/"
9,"riywo Presentations","http://www.slideshare.net/riywo"
10,"riywo on USTREAM: This is riywo's channel..","http://www.ustream.tv/channel/riywo"
11,"Flickr: riywo's Photostream","http://www.flickr.com/photos/riywo/"
...

なんかSyntaxErrorとかTwitterが3つくらいでてますが、とりあえずいい感じっぽいですね!

懇親会はクックパッドならでは!

そういえば書き忘れましたが、今回会場はあの有名なクックパッドさん!何と勉強会やってるうしろには巨大なキッチンがあって、そこで懇親会用の料理を作ってましたよ!懇親会ではそれをおいしく頂きました。クックパッドさん感謝!

ぼっちで突撃したのでどうしようあわわと思ってましたが、@t_wadaさんや@sugyanさんや@deekiさんにお話させて頂き、生きた心地がしましたありがとうございます。やー、JSやらんといかんね。。。

まとめ

勉強会は、行き始めると、すぎゃんさんのヒッチハイクじゃないですが、割と単身で突撃とかもできるようになるんですが、最初が腰重いですよね。でも「この勉強会ならいけるかも、あ、でも気づいたら定員埋まってる。。じゃあいいや。。」とか繰り返してるといつまでたっても行けないです。興味あると思ったら、今の知識は関係なくとりあえず行ってみるのがいいです。何回か行ってれば勉強会ってのがなんとなく分かってきて、ますます行きたくなってきます。

ただし、丁度今日西尾さんがエントリに書かれていた様に、「聞きに来ただけ」じゃみんながハッピーじゃないです。僕が思うにこうやって「行ってきたエントリ」を書くのが一番お手軽で後にもつながる「Give」じゃないかなと思います。

というわけで「ブログを書くまでが勉強会だよね」とか言ってしまったので、これでやっと寝れます。発表者の皆様、会場&料理の提供頂いたクックパッドさん、参加者皆さん、ありがとうございましたー!