ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Ruby勉強会@広島コミュのRuby勉強会@関西-5、体験レポート

  • mixiチェック
  • このエントリーをはてなブックマークに追加
場所は天満橋というところにある「ドーンセンター」という設備の良い会場でした。小から大まで、いったいいくつ会議室があるんだというほどですよ。

発表は2つありました。

 1. Ruby de 画像処理
 2. Ruby で学ぼうオブジェクト指向

1つ目のテーマは、「Rubyだけで画像処理ライブラリを作ってみたら結構いけそうだ」という話しです。実際に図形の描画、文字乗せ、フォトレタッチと、ペンティアム3のノートパソコン上で実行されましたが、そんなに大きな画像でなければ文句を言うレベルではないのは意外でした。インストールする手間が無く、カレントディレクトリにファイルを1つだけ置いて「require 'pureimage'」とするだけなので、使いやすい局面が色々あるんじゃないかと思いました。

このライブラリは、本家 Ruby のサイトから辿れる RAA(ルビー・アプリケーション・アーカイプ)というところで公開されています。今後追加したい機能や課題も沢山あるようですから、熟成されていけばもっと面白いことになるかもしれません。

それから、Ruby で全てを実装する意義の大きな点に、画像処理の仕組みを勉強する道具として向いているんじゃないか、というところをしきりにアピールされていたのが印象的でした。

2つ目は「Ruby で学ぼうオブジェクト指向」これは Ruby 初心者向け講座第2弾というシリーズもので、発表された「かずひこさん」は Ruby の開発者「まつもとゆきひろさん」の会社に所属されている方です。私より遠くから参加されるのは、いつも彼だけになります(松江からですからかなり遠い)。

今回は、演習にかなり多く時間をとった講座をされました。達人級のサブ・ティーチャーが何人か立候補・指名されて、アドバイスをして回って頂けるのですが、このての講習会をメーカーがやったら何十万取りますよ、本当。それが学生さん500円、一般1000円ですからね。魅力あるでしょ。

この「Ruby で学ぼうオブジェクト指向」の資料はとてもいいものなので、少し手を入れて私のページに載せさせて頂く予定でいます。

http://www.taisbox.jp/~adachi/wiki/index.fcgi?cmd=view;name=LearnObjectAtRuby

というわけで、毎回参加者が増えている感じがする関西の会ですが、次回は9月25日辺りにしようという話になっています。場所は京都女子大学になりそうです。私は例によって参加する予定です。どうやら「Extreme Programming」の発表が入りそうですよ。

あっ! 忘れてた。Railsの本の和訳がもう始まっているそうです。けど、リリースが年を越して1月と、ちょっと待ち切れませんねえ。英語版を手に入れるかどうか悩むところです。

簡単ですが今回のレポートは以上です。つづく...

コメント(8)

お疲れ様です。次は僕も出ようかなーーー?勉強会が初心者向けの講習会をしてくれるのはいいですね。独習していたら聞けば一発でわかったことがひどいときには1ヶ月ぐらい悩みますからね。Rails本僕らもやりましょうよ。努力すれば読めるんじゃないですかね?れいさんも入ったということだし、でも彼忙しいですかね。とりあえず僕は現在はRubyそのものを覚えないといけないんですけどね。
あだっちゃんさんの「Rubyで学ぼうオブジェクト指向」の資料を拝見しました。お疲れなのにこんなにフィードバック早いなんて。「社長、起立、礼」いいですね。僕もポリモフィズムはあれで覚えました。NTTの牛尾って人が考えたやつですよね。デブサミで彼の講演を聞いたら、オブジェクト指向を教育するのに、一番やりやすい方法を考えたらああ、なったみたいですよ。
>もしポリモルフィズムがなければ?
> * 仕事を頼む側の種類が増えたら、えらいことになる!>(従来の構造化言語ではこれをやっていた
の言葉、あだっちゃんさんのオリジナルですか?すごい気に入りました。

カプセル化のとこを拝見して少し疑問に思ったんですけどprivateとか使わないんですか?
ちょっと混乱してますけど、public,privateなどのアクセス修飾子はメソッドのみで変数に直接アクセスさせないようにインスタンス変数をprivate修飾などはできない(やる必要がない)ってことなんですよね。

たとえば
class Person
 def initialize(name)
  @name = name
 def

 def name
  return @name
 end
end

rubymember = Person.new("kanji");
rubymember.name

これって
rubymemberから変数nameにアクセスしているように見えるけどnameメソッドっていうことですよね。デフォルトでインスタンス変数にアクセスはできないようになってて、変数に直にアクセスしたいのならグローバル変数にしろっていう風に解釈していますがいいんでしょうか?
初心者向けということで、アクセス制御の説明は今回は敢えて抑えられたんでしょう。public、private、protected命令はしっかり用意されています。

class Person
 def initialize(name)
  @name = name
 def

 def name
  return @name
 end
 private :name
end

こうすると、nameメソッドはインスタンス内でしか参照できなくなります。もうひとつ書き方が用意されています。

class Person
 def initialize(name)
  @name = name
 def

 private # これ以降定義したメソッドはprivateになる。
 def name
  return @name
 end

 def foo
  [...]
 end
end

『たのしい Ruby』だと p.130 ●…8.2.10 辺りから説明が始まっていますね。

> 変数に直にアクセスしたいのなら
> グローバル変数にしろっていう風に解釈していますがいいんでしょうか?

ちょっと待った! 直接インスタンス変数に触らせない仕様になっていますが、毎回外にから何かしたいフィールドのためにアクセスメソッドを書いていたら大変だ、ということのために、楽な書き方が用意されています。

class Person
 def initialize(name)
  @name = name
 def

 attr_reader :name # 下の name メソッドと同等の効果。
 # def name
 # return @name
 # end
end

また、書くことだけを許すだけなら attr_writer、読み書きの両方を許すなら attr_accessor と、揃えてあるので状況によって使い分けるとよいでしょう。これで、「グローバル変数使えばタイプ量が減るからその方が楽だ」という邪念は消えるでしょう。ていうか、そんな人いませんよね。
>「グローバル変数使えばタイプ量が減るからその方が楽だ」という邪念は消えるでしょう。ていうか、そんな人いませんよ

おっしゃるとうりです(笑)、僕もグローバル変数は有害なものだと思ってます。(PHPのプログラマーに聞くと便利って答えるんですけどね)はじめてRubyの文法を見たときなんでグローバル変数があるんだ?って不思議に思ったですから。ほとんど使うこと無い!使う必要なしと解釈していいですか?

attr_accessorをつかうと

class Person
 def initialize(name)
  @name = name
 end

 def get_name
  return @name
 end

 def set_name(name)
  @name = name
 end
end

というようにアクセッサ(JAVAならゲッター、セッターとかいうんですけど)を書かなくていいってことですね。

これはすごい便利だと思いました。データベースに永続化するエンティティとオブジェクトのORマッピングする時のDTO(ValueObject)を書くのに便利ですよね。
たとえばこんな奴

--------- オブジェクト ----------------
class Employee
 attr_accessor :employId
 attr_accessor :name
 attr_accessor :department
end

---- エンティティ ------------
create table employee (
 employId int
, name varchar(20)
, department varchar(15)
);
--------------------------------

Ruby On RailsでORマッピングがどれほど簡単にできるかまだ全然わかりませんが、早くRubyに慣れてやってみないといけませんね。サーバ環境や開発環境もどうやってやるかまだ文法の学習で精一杯で把握してません。お暇なときでも勉強会していただけますか?市役所なんかの部屋とか借りれるんですかね?
> ほとんど使うこと無い!使う必要なしと解釈していいですか?

「Perl からの移行組のリハビリ用」と、誰かが冗談めいたことを書いていたのを思い出します。私が読んだコードに '$' の付いた変数を見た記憶は無いですね。ただ、本当に使い捨て程度のスクリプトには使っている人がいるかも知れません。そのために敢えて残されたとも推測できます。スクリプト言語でもあるわけですから、「どうせ書き捨てなんだからグローバルも、へったくれもねーだろう」という使い方があってもおかしくはない、とも思いますねえ。

> というようにアクセッサ(JAVAならゲッター、
> セッターとかいうんですけど)を書かなくていいってことですね。

そうです。Delphi(ObjectPascal) のread/write property もそれに当たる機能なんですが、これに慣れている私は、このての機能がないとやってられないかもしれません。なんでJavaにこいつを実装しなかったのかな?

> Ruby On RailsでORマッピングがどれほど簡単にできるか

おそらくここら辺りの出来のよさから「〜の10倍論争」が出てきたんだと思います。Rubyには他にも「CGIkit/Tapkit」というORマッピングを持つフレームワークがあるんですが、私自身がまだRailsのコードをこの手で書いたことがないもんですから、両者の比較、ましてやJavaのフレームワークとの比較を語る資格がないんですわ。

そう言って後まわしにしてばかりもいられないので、一日の中にRailsのことをやる時間を設けることにします。日本語で提供されているドキュメントのチュートリアルから手を付けてみます。何とか語れるレベルになったら勉強会、準備しましょう。
小松さんが興味を持ってくれて、勉強会に会社を使わせてくれるみたいです。「僕もRubyやってみようかなー?」とか言ってます。興味を持つにはもつが、やらないだろうなって思ってましたので意外ですけど、シェルスクリプトみたいな使い方でシステム管理をRubyでしたいみたいですよ。
小松さんから先程電話を頂きまして、別件ではありますが明後日そちらのオフィスへ伺うことになりました。何かもう一人カンファレンスに参加された方がみえるらしいですね。今後の展望を軽くということでしたが、「軽くRails」を押しときましょうか。
そうしましょう。「Rails最高!」って言うとって下さい。僕が言うと「この新しいもん好きが!(ミーハー)」って思われるでしょうから(笑)。あだっちゃんさんから言っていただくほうが説得力あるかなと思います。僕はPHP層を引き込みたいんですよね。PHPの代替には小松さんは懐疑的ですね。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Ruby勉強会@広島 更新情報

Ruby勉強会@広島のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。