shizuto on languages

言語好きの組込みプログラマが言語から言語じゃないものまで語ります。On y va!

Ruby/Rails勉強会@関西#48 に参加してきた

rubykansai48 (日本Rubyの会 公式Wiki - KansaiWorkshop48) に参加してきました。今回のプログラムはこんな感じ。

京都女子大学でないRuby関西は、僕にとっては初めてです。発表減ったよなあと感じるのは、前回からフリートークセッションが追加されたからでしょう。発表希望者が増えたら、個々の時間を短くして調整なのかな。

全体的に開放感(悪く言えばぐだぐだ感)があったのと、ちょうど聞きやすいレベルの話が並んだので、ありがたい内容でした。

Cucumberはすごく気になっていたけど、Windows環境ではちゃんと動くところまでいかなかった、残念。でも、Rails newして、Cucumberのfeature書いて、すぐに気楽に開発が始められる雰囲気は伝わった。いいね、やってみたい。

Ruby Advent Calendarはいろんな意味でレベルが高騰してるけど、おもしろいね。ir_bとか状況によってはハッピーになれそう。「mapの使い方」くらい敷居の低いので十分楽しめるし、Ruby関西 Advent Calendarとかやってみたらおもしろそう。

そういえばクラス変数、クラスのインスタンス変数は何度か本やマニュアルで読んだけどちゃんと使う機会がなかった。

class A
  @@class_var = 123         # クラス変数
  @class_instance_var = 456 # クラスのインスタンス変数

  def self.show_var
    p @@class_var
    p @class_instance_var
  end
end

class B < A
end

A.show_var #=> 123 456
B.show_var #=> 123 nil

# サブクラスの中でも代入してみる。

class B
  @@class_var = 7777
  @class_instance_var = 9999
end

A.show_var #=> 7777 456
B.show_var #=> 7777 9999
  • クラス変数はスーパークラス〜サブクラスのツリー全体で共有。
    • サブクラスを作ったら継承される。
    • 一部のサブクラスでは値を変える、ということができない。
  • クラスのインスタンス変数はそれぞれのクラスで別々。
    • その代わり、サブクラス作っても勝手に継承はされない。

なるほど。サブクラス作ったら継承はしてほしいけど、サブクラスでは書き換えたいというニーズはあって、そのために ActiveSupport に Class.class_attribute なるものが作られていたりするらしい。

メタプログラミングするときはこのあたりの細かい知識重要!

あと、懇親会は���܂����̏��@���˂���というところ。ボリューム満点の大皿がぽんぽんと登場してきます。

f:id:shizuto_a:20110108171230j:image
なんか普通の鍋コースっぽいけど。

f:id:shizuto_a:20110108172131j:image
大皿いっぱい。他にもロールキャベツとか角煮とか揚げ物盛り合わせとかピザとかとんぺい焼きとか餃子とかいろいろ出てきた。飲み放題付き3000円でこんなの来るかー。

次回は3月12日らしいです。今月中に発表するネタ作れるようがんばろう。