読者です 読者をやめる 読者になる 読者になる

FAKELOG

思うがままに書き殴るブログ

『Shibuya.rb』に初参加したよ!

Ruby Shibuya.rb 勉強会

2012/02/15(水)に VOYAGE GROUP さんで開催された、Shibuya.rb に初参加した。

ソースコードリーディング

今回は Rack ミドルウェアのソースコードリーディングというテーマで。おっと、そもそも、Rack について詳しく知らないなーって思って、基礎知識は学習した上で望んだ。

Chanko

クックパッドさんが提供している Chanko のソースコードを読むチームへ参加した。Chanko は新機能を既存コードから出来るだけ切り離した状態で、本番環境にてユーザーのロールによって有効化、無効化を簡単に制御出来る。本番環境で試せるってのはメリットあるなと思う。

チーム内には、そもそも、Chanko がどういったモノなのか理解している人が居なかったので、まずは、Chanko を利用して作られている サンプル を動かしてみよう!って事になった。

で、皆でローカルへ持ってきて動かしてみたんだけど、なんかログがダーっ!とスゴイ勢いで流れて不穏な雰囲気。でも、なんとなく画面は表示された。Chanko の README を読めば分かるが、active_if というメソッド内で機能の有効化、無効化が出来る。このサンプルではデフォルトで true になっている為、機能が有効になるじはずだが、これが何故か有効にならない。どうも Rails のバージョンが3.2なのがマズイらしく、3.1に落として実行すると正常に動作した。詳しくは下記を参照すると良い。

http://d.hatena.ne.jp/InvokeTwoA/20120131

なるほど、true を false に変更すると機能が切り離される。ユーザーのロールの判別は、lib/chanko/active_if/active_if.rb に Chanko::ActiveIf.define で定義したモノを、active_if で利用するんですねー。と、まぁ、Chanko の一部機能を理解するだけで、ほぼ終わってしまいました・・・。

感想

そもそも、自分はコードリーディング自体をそんなにやってない為、どう進めるべきかも分からずで。慣れてる人が居れば、少しは違った結果になったかもしれん。自分のレベルの低さが露呈したな。

あんまりインプット出来なくて悔しい思いはしたが、収穫はあった。まず、自分は想像以上に Ruby 分かってねーなー!という事。なんとなーくしか、ソースが追えない。これはイカン。もっと、ソースコード読まねば!という思いに駆られた事は収穫。これを機に Chanko を読み進めてみるかと思ったら、既に エントリー が挙がっていましたね。慣れない内は、このエントリーを見ながらお勉強っすね。

LT 大会

さて、途中で LT もありました。

@kyanny さんによる Remaze と Sequel のお話し。

詳しくは、ご本人の エントリー を参照。Remaze の存在すら知りませんでしたね。Sequel は何かの参考書に記述があったような気が。とにかく、どちらも手軽そうな感じですね。

@joker1007 さんによる pry なお話し。

詳しくは、ご本人の エントリー を参照。pry 良いですよね。なんで今までこーゆーの無かったのか不思議なくらいに便利。

まとめ

最後に、懇親会にも参加しましたが、皆色々と詳しくてスゲーなー!の一言。最近、業務でゴリゴリとコード書いてる訳でも無いし、差があって当然なんだけど。でも、逆にそれが刺激になって楽しい。そして、@tyabe さんが同じ大学出身で同じ年齢で、同じキャンパスに居たという事実に驚いた。多分、一度くらいスレ違ってるだろうなー。

とても良い刺激になったので、また次回、Shibuya.rb に参加してみたいと思う。