2003-07号〜2004-18号で掲載していた平鍋の記事を、ご好評につきオブジェクト倶楽部サイトでWeb公開いたします。原則の解説、考察、原則について感じたことが書かれています。読まれた方も、まだ読まれていない方も、これを機にご覧ください。9/3(土)に日本科学未来館にて、XP祭り2005が開催されました。楽部メンバーも参加してきました。読者のみなさんの中にも、参加された方が多いのではないでしょうか。学びの多い、楽しい祭りでした。参加された方も、参加できなかった方も、XP祭りって何?という方も、こちらにイベントの感想が公開されています。巷で流行りのアジャイル。様々な方面から噂をよく耳にします。・取り入れてみたいけれども不安がいっぱい。これって本当に大丈夫なの?・取り入れてはみたものの、うまく行かない。これって本当に大丈夫なの?もしかしたら、アジャイルが勘違いされて普及しているのではないだろうか?その疑問の元に、正しいアジャイルって何だろう、とオブジェクト倶楽部メンバーと有志お二方とで熱い議論が繰り広げられました。この内容を「アジャイル勘違い集」としてまとめました。上がりになっています。内容は以下で構成しています。http://www.ObjectClub.jp/technicaldoc/xp/agile_misunderstanding(さとみ)_______________________________________________________________________この記事への評価にご協力をお願いします。URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用のブラウザに表示されれば投票完了です。Railsの入門記事が載っています。海外では熱いブームになっています。「なんですか!これ!!」と思わず叫んでしまいました。なんたって、30分以内にview-controller-model-databaseの連携確認ができちゃったことに驚きです。わずらわしい作業がほとんどなく、よく考えられているなぁと、感心してしまいました。Railsを一度体験してはいかがでしょうか●今回のテーマさて、今回はEnumerableモジュールの取り込み(Mix-in)について学習していきます。Enumerableは繰り返し処理についての汎用的なモジュールです。モジュールを取り込んでいる代表的なクラスはArrayです。過去の記事でブロックを紹介した際に、Arrayクラスのfindやcollectメソッド等に触れましたが、それらのメソッドがEnumerableの代表的なメソッドです。モジュールは、メソッドをまとめて定義できるなどクラスによく似たものですが、次の点で異なります。モジュール・インスタンスを生成できない・継承できない・Mix-inできる(モジュールを取り込むことができる)クラス・インスタンスを生成できる・継承できる・Mix-inできない(クラスを取り込むことはできない)Mix-inは、クラスなどがモジュールを取り込むことで機能を混ぜ合わせることを指します。ある部品を再利用して、記述量を減らしプログラムをシンプルにする点で、「<」キーワードを使った継承と共通していますが、次の点で異なります。・1つの(親)クラスのみ継承できる。・複数のモジュールを取り込むことができる。多重継承(のようなもの)今回のサンプルプログラムでは、前回作成したOrder(注文クラス)にEnumerableを取り込むことで、手軽にOrderクラスを便利なやつに変身させてみたいと思います。endend----------------------------------------------------前回定義した合計を計算するメソッドのほかに、注文オブジェクトのfind、find_all、collect、sortのテストを行っています。find、find_all、collectはEnumerableの代表的なメソッドですが、そのほかにもmax、min等が便利なメソッドがあります。find_all、collect、sort、max、minを自分で実装すると手間がかかってしまいますが、Enumerableを使うと簡単に実現することができます。・includeでEnumerableモジュールを取り込み・eachメソッドの記述の2つが必要です。eachメソッドの記述が必要なのは、Enumerableモジュールのメソッドがすべてeachを利用して記述されているからです。endend----------------------------------------------------テストを実行するとパスします。Orderクラスにfindメソッドなどを記述していませんが、Enumerableを取り込むことでfind等の機能を持つことができます。●まとめEnumerableのMix-inについてふれました。?記述量が少なくて便利だと思いませんか?Enumerableのほかに、Mix-inすると便利なモジュールとして、Observable、Singleton、Comparableなど多数あります。今回は「クラス」に「include」キーワードを使ってモジュールを取り込みましたが、Rubyでは、「オブジェクト」に「extend」キーワードを使ってモジュールを取り込むこともできます。次回はevalについてについて触れてみたいと思います。参考http://www.ruby-lang.org/ja/man/?cmd=view;name=Module#includehttp://www.ruby-lang.org/ja/man/?cmd=view;name=Object#extendhttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Enumerablehttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Module;em=Module(IENAGA)_______________________________________________________________________この記事への評価にご協力をお願いします。URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用のブラウザに表示されれば投票完了です。ホントのところ今週は「キーボードにどのようなこだわりがありますか?」のホントのところ。毎日使用するものなので、みなさんこだわりがあるのではないでしょうか。回のマウスに関するアンケートに引き続き、今回はキーボードに関する質問です。いろんなボタンがあると嬉しい。キータッチ最優先です。英語キーボードが手になじみます。Windowsキーとか、余分なキーがないのがいいです。Fnキーやテンキーすらないのがいいです。