Ruby超入門Rubyでアジャイルプロトタイピング(2)(2/2 ページ)

» 2005年12月07日 12時00分 公開
[鍜治舍浩, 西川仁, 林秀一,永和システムマネジメント/永和システムマネジメント/アークピア]
前のページへ 1|2       

Rubyのインストール

 Ruby のインストールについて簡単に解説をします。Windows、Linux、MacOSそのほかさまざまなプラットフォームでRubyは実装されています。下記の URLを参考に自身のプロジェクトで最適な環境を選択してください。2005年10月8日現在、Rubyの最新版は1.8.3ですが、プラットフォームによっては1.8.2またはそれ以前のバージョンしかないものもあるかもしれません。

http://www.ruby-lang.org/ja/install.cgi

 皆さんのクライアント開発環境はWindowsが多いことと思います。Rubyにはさまざまな開発環境や開発をアシストしてくれるツールが存在しています。下記のURLを参考にしてください。

http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=Tools+for+Ruby

 筆者はvim(プラグインなし)でRubyを書いていますが、これからRubyを始める方にはEclipse上で動作するRubyのIDEであるRDTがなじみやすいのではないでしょうか。

http://capsctrl.que.jp/kdmsnr/wiki/rdt/

Rubyサンプル

 実際のRubyのソースコードを紹介します。サンプル1はメンバに対する単純なsetter、getterメソッドを持っただけのクラスです。RubyのソースコードがJavaのソースコードに比して、コーディング量が少ないことが分かります。

・サンプル1.1 (JavaのEmployeeクラス)

public class Employee {
    private String name;
    private boolean manager;
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setManager(boolean manager) {
        this.manager = manager;
    }
    public boolean isManager() {
        return manager;
    }
}
・サンプル1.2 (RubyのEmployeeクラス)
class Employee
    def initialize(name = '', manager = false)
        @name = name
        @manager = manager
    end
    attr_accessor :name, :manager
    alias :manager? :manager
end

 サンプル2では、クロージャと呼ばれている機能を使います。クロージャを使うことでロジックを簡潔に記述することができるようになります [*4] 。


[*4] Martin Fowler、CollectionClosureMethod(原題:CollectionClosureMethod),http://capsctrl.que.jp/kdmsnr/wiki/bliki/?CollectionClosureMethod

Comments



・サンプル2.1 (JavaのselectManagersメソッド)

public List selectManagers(List employees) {
    List managers = new ArrayList();
    for (int i = 0; i < employees.size(); i++) {
        Employees e = (Employee)employess.get(i);
        if (e.isManager()) {
            managers.add(e);
        }
    }
    return managers;
}

・サンプル2.2 (Rubyのselect_managersメソッド)

def select_managers(employees)
    employees.select do |e|
        e.manager?
    end
end

 RubyはJavaに比してコーディング量が少なく簡潔なシンタックスを持っています。そのため、慣れてさえしまえば、より少なく、より早く書くことができ、その結果つまらないミスを犯す可能性が少なくなります。また、サンプル2.2のRubyのコードには型の宣言がないことにも気付きます。もしEmployeeのクラス名が変更されたとしたら、サンプル2.1の Javaコードは修正が必要になりますが、Rubyのサンプルでは、eのオブジェクトがEmployeeクラスのインスタンスだとはどこにも書いてないので修正の必要がありません。

まとめ

 連載第2回となる今回は、「Ruby超入門」ということで駆け足でRubyのことを紹介させていただきました。Rubyはスピードが勝負となる現在の開発現場にマッチした、非常に実戦的な言語です。Rubyは慣れるまでに若干時間がかかるかもしれません。それでもJavaに比して学習コストは比較的低いと筆者は考えています。そして何より、RoRでプロトタイプを作ることのメリットはそのコストに十分見合ったものです。

 連載第3回目となる次回は、「RoR超入門」としてRoRについて解説をします。RoRの簡潔さ、ダイナミズム、スピード感を感じてもらえたら幸いです。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ