Date:  Wed, 19 Oct 2005 14:00:41 +0900
Subject:  【オブジェクト倶楽部: 2005-38号】
X-Mail-Count: 00119

       ┏━━━━━━━━━━━━━━━━━━━━━━━━━━■
       ┃                         ■┃
      ●┃● ● オ ブ ジ ェ ク ト 倶 楽 部   ■ ┃
       ┃                       ■  ┃
       ┗━━━━━━━━━━━━━━━━━━━━━━■━━━┛
                          No.113 2005/10/19

■ I N D E X
┃
┣【Topics】『正しく学ぶソフトウエア設計』プレゼント
┣【プログラミング】Rubyで進むオブジェクトの道 〜脱初心者をめざして〜[9]
┣【PF】アジャツール - Agileなツール紹介[4]
┗【アンケート】気になるシステム業界 ホントのところ

〇━━━━━━━━━━━━━━━━━━━━━━━━━━━T o p i c s━
 〇  『正しく学ぶソフトウエア設計』プレゼント
  〇 〇━━━━━━━━━━━━━ ━━・ 

日経ソフトウエアに掲載されたオブジェクト指向分析/設計手法の特集、連載記
事が加筆・修正してまとめられている『正しく学ぶソフトウエア設計』が発売
されました。オブLOVEメンバーの天野、平鍋の記事も「じっくり学ぶオブジェ
クト指向設計の考え方」として掲載されています。

このムックを抽選で1名の方にプレゼントします!プレゼントご希望の方は、お
名前、ご住所、電話番号、をお書きの上、editors@ObjectClub.jp までご連絡
ください。締切は24日(月)です。 発表は発送もってかえさせていただきます。
※いただいた情報は、書籍の郵送にのみに使用いたします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━1 s t ■━
■
┗【プログラミング】Rubyで進むオブジェクトの道 〜脱初心者をめざして〜[9]

●裏ニュース
今度のオブジェクト倶楽部のクリスマスイベントで、Rubyの枠を用意すること
なりました!?何をするかはお楽しみ〜

●はじめに
今回は、instance_evalについて学習していきます。instance_evalは、レシー
バのオブジェクトのコンテキストで引数の文字列を評価して結果を返すもので
す。

うーん、自分でも何を言っているか、さっぱりわかりません(笑)。動作するプ
ログラムを書いて実際に確認してみましょう。

●サンプルプログラムの要約
今回は、アクセサメソッドを定義する「メソッド」を定義することで、
instance_evalを学習していきます。

(「アクセサメソッドを定義する「メソッド」を定義する」がRubyだと簡単にで
きちゃうんですね。Javaだと、どのように記述するか、さっぱりわかりません。)

では、プログラムを書いて確認します。

●サンプルプログラム

require 'test/unit'

class PropertyTest < Test::Unit::TestCase
  def test_proeprty_item
    property = Property.new

    // アクセサメソッドをメソッドで定義
    property.def_attr_accessor("id")
    property.def_attr_accessor("price")

    property.id = 1
    property.price = 98
    assert_equal 1, property.id
    assert_equal 98, property.price
  end
  def test_proerty_user
    property = Property.new

    // アクセサメソッドをメソッドで定義
    property.def_attr_accessor :name
    property.def_attr_accessor :age

    property.name = "ienaga"
    property.age = 20
    assert_equal "ienaga", property.name
    assert_equal 20, property.age
  end
end

class Property
  def def_attr_accessor attr_name
    instance_eval %Q{
      def #{attr_name}
        @#{attr_name}
      end
      def #{attr_name}=(value)
        @#{attr_name} = value
      end
    }
  end
end

●Propertyクラスのmy_attr_accessorメソッドの要約

def_attr_accessorメソッドは、アクセサメソッドを定義するメソッドです。
例えば

    property.def_attr_accessor("id")

とメソッドを呼べば、propertyオブジェクトにidのアクセサメソッドが定義さ
れます。

●def_attr_accessorメソッドの実装の詳細

      instance_eval %Q{
        def #{attr_name}
          @#{attr_name}
        end
        def #{attr_name}=(value)
          @#{attr_name} = value
        end
      }

上記のプログラムでは、%Q{・・・・}で囲まれた文字列をinstance_evalが評価
して結果を返します。

例えば、attr_name変数の値が"price"であれば

        def price
          @price
        end
        def price=(value)
          @price = value
        end

の文字列が生成されます。上の文字列が、アクセサメソッドを定義する文字列
であることがわかります。

instance_evalがこの文字列を評価し、propertyオブジェクトに結果を返すこと
でpropertyオブジェクトにアクセサメソッドpriceが定義されます。

●まとめ
instance_evalを紹介しました。instance_evalを使えば、例えばメソッドを定
義するメソッドを実装することが手軽にできます。
evalを学習して初めて知ったのですが、attr_accessor、attr_reader、
attr_writerってメソッドだっだんですね。てっきりRubyの予約語だと思ってい
ました。これらのメソッドは、class_evalを利用しているようです。

いやぁ、メソッドでメソッドを定義するなんて本当にびっくりです。

さて次回は、DSLについて学習するか、method_missingについて学習するか、
DuckTypingについて学習するか・・・で揺らいでいます。
次回までのお楽しみということで。(IENAGA)

<参考>
Rubyリファレンスマニュアル
http://www.ruby-lang.org/ja/man/?cmd=view;name=Object;em=instance_eval

まつもと直伝 プログラミングのオキテ(第6回)日経Linux 2005.10
http://itpro.nikkeibp.co.jp/linux/backnum/newest_mokuji_10.shtml
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E006-8&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E006-8&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E006-8&choice=2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━2 n d ■━
■
┗【PF】アジャツール - Agileなツール紹介[4]

●はじめに

今回のアジャツールは、メジャーどころに触れたいと思います。もう皆さんも
よくお馴染の付箋です。ここで取り上げる付箋は、本のしおりに使うものでは
なく、壁などに貼って使用するものを指します。プロジェクト・ファシリテー
ションでも、見える化の手始めとしてToDo管理をする際に使用したり、SKMS[*1]
でのナレッジファシリテーションの道具としても使用します。その便利さは、
もはや語るまでもないでしょう。

なぜ、あえてメジャーな付箋を今回の対象としたのかと言うと、あまりにもメ
ジャーすぎて、普段あまり話題にならない付箋についてのお話がしたかったか
らです。

●「見えない」付箋

付箋は壁に貼ることによって、我々に情報を発信するオブジェクトとなります。
付箋自体に色が着いていることがその第一の原因ですが、付箋に書いてある内
容に一番の価値があります。しかし、ボールペンを使って書くと、字が細くて
肝心の内容がとても見えにくくなってしまうのです。ボールペンは現在のオフィ
スで一番よく使われている筆記具ですが、それほど視認性がよいものとは言え
ません。特に一般によく使われている黒ボールペンが本当に「黒」く見えるか
については議論の余地があると考えています。

自分のToDo管理用に、手帳に貼ったりするならまだしも、他人と壁に貼って共
有するための付箋にボールペン(色を問わず)で内容を記入するのは視認性の点
から避けたほうが無難です。その代りにお勧めするのはサインペンや、水性マ
ジックです[*2]。ボールペンとは視認性からして雲泥の差です。あまり細かい
字が書けないのは、逆に情報を詰め込みすぎて離れて見えないという状況を回
避することができます。

●良いはがし方

付箋をつかっていて困るのが、使っている付箋がそりかえってしまい、はがれ
やすくなってしまうことです。これは付箋のはがし方に問題があります。普通
に使っていると、付箋は糊でとめられていない側(下)から上にめくります。自
然なはがし方ですね。しかし実際に使用するときには先ほどのはがし方では、
付箋が糊側を外側にして反りかえってしまうことが多いです。実は付箋のはが
し方に工夫が必要なのです。

筆者がよくやっていたのは、付箋を左→右へ、横向きにはがすことです。下→上
へはがすよりも反り方が少なく重宝していたのですが、もっといい方法を知り
ました。それは付箋を下へ引いてはがすやり方です[*3]。はがすというよりも、
むしろ引っ張ってとるといってもよいかもしれません。こうすると反りはほぼ
0に近く、付箋がはがれにくくなります。

しかし世の中そうは上手くいかないもので、何度も付箋を貼り直すような機会
で、反らないはがし方を使用すると、爪が短い人にとっては付箋をはがすのが
一苦労になってしまうのです。こうなってしまうと逆にある程度反りがある方
がはがしやすく、扱いやすいのです。付箋の使われ方によって、はがし方も工
夫したほうがよさそうです。

●会議の断片を記録する

最後に先日とある方に教えてもらった、付箋の便利な使い方を紹介しましょう。
会議中に、パソコン上で議事録をとったり、ホワイトボードにマインドマップ
を議事ログとして描いたりすることがあります。この時に、別途付箋を使って
実際の決定事項、課題を書いてその場で壁に貼っていくという方法です。ポイ
ントとしては、議事録をとっている人ではなく、別の人に付箋まとめ係という
ロールを割当てて行ってもらうのです。

議事録とは別に、あえて付箋を使う理由は2つあります。1つは書いた付箋は、
課題、アクションアイテムなどの場合はそのまま壁に貼りかえた後、ToDo管理
として利用できるという点です。もう1つは、会議中、あるいは会議終了後に壁
に貼ってある付箋の一群を見ることで、どのような内容が決って、どのような
問題があがったかを一望することができる点です。

もちろん、プロジェクタ上でリアルタイムに議事録をとったり、ホワイトボー
ドにまとめたりする方法でも同様の効果を得ることはできますが、ホワイトボー
ドは何度も消しては書く、といったclean-writeの用途に専念させたいのです[*4]。
貴重な書き直しができる環境を、書きっぱなしで置いておくのは効率がよくあ
りません。印刷できるホワイトボードで一見事足りると思われがちですが、
実は印刷した内容は、会議中に再度確認することはなかなかありません。プロ
ジェクタに投影してリアルタイム議事録をとる場合も、参加者と共有はできま
すが、貼りっぱなしの付箋と比べて、見ることに対する不自由が生じてしまい
ます。

とは言え、付箋だけでどうにかなるという事ではありません。あくまでも他の
ツールと併用して、付箋をより効果的に使用するという点を強調しておきます。

●まとめ

今回はとりとめもなく、付箋にまつわる話をつらつらと書いてみました。次回
も壁に関連したツールを紹介する予定です。(懸田)

[1]:http://www.iire.co.jp/skms.htm

[2]:油性マジックは裏写りするのでやめましょう。

[3]:こちらの書籍に掲載されていました。「問題解決のための高速思考ツール」
    http://www.amazon.co.jp/o/ASIN/4434057618/xpjp-22

[4]:消さない(消せない)ホワイトボードを「ブラックホワイトボード」と言っ
    たりもします。
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=M002-4&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=M002-4&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=M002-4&choice=2
 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━3 r d ■━
■
┗【アンケート】気になるシステム業界 ホントのところ

今週は「通勤時間はどのくらい?」のホントのところ。この業界、残業も多い
し、さっくりおうちに帰りたいものですよね?でも、以外に皆さん、通勤に時
間がかかっているのではないでしょうか?みなさん、通勤時間(片道)はどのく
らいですか?

  10分未満。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=79&choice=0
  10分〜30分。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=79&choice=1
  30分〜1時間。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=79&choice=2
  1時間〜1.5時間。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=79&choice=3
  1.5時間〜3時間。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=79&choice=4
  3時間以上。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=79&choice=5
  自宅勤務です。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=79&choice=6
  それは秘密です。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=79&choice=7
  ちょっと語らせて!
     editors@ObjectClub.jp まで詳細を!!

アンケート結果はオブジェクト倶楽部サイト上にて公開します。お楽しみに。
なお、前号「どのような通勤スタイルですか?」の結果は公開中。ぜひご覧下
さい。
⇒http://www.ObjectClub.jp/special/kininaru/vol78/PlonePopoll_results2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
■
┗編集後記

こんにちは、編集人です。昨日、年賀状印刷のちらしを見ました。もうお正月
に向かってるの?と大変驚きました。まだ衣替えをしたばかりなのに。。かく
言うオブLOVEでも、気持ちはクリスマスに向かっています。イベントに向けて、
様々なことが急ピッチで動きだしました。今回は、イベントに参加する全ての
方が一体となれる企画を練ってます。想像するだけで、にやけてきます。詳細
は来月にはお知らせできるかと。ご期待ください!

今週の強引な一言
*** 苦は楽の種(徳川光圀)***
プロジェクトのはじめに苦労をしてみましょう。短いサイクルの繰り返し型の
開発で、最初は少し多めのタスクを選択するのです。その苦い経験が活かされ
て、プロジェクトの後半は楽に進められると思いますよ
(さとみ) 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
● ご意見、ご感想は         ⇒このメールに返信ください
〇 配信中止、アドレス変更は ⇒http://www.ObjectClub.jp/community/object_ml/help/
〇 免責事項、過去の記事は   ⇒http://www.ObjectClub.jp/community/object_ml/
■ 発行:オブジェクト倶楽部 ⇒http://www.ObjectClub.jp/
■ 編集代表:平鍋  健児
Copyright (c)2003-2005 オブジェクト倶楽部. All Rights Reserved.
powered by Eiwa System Management, Inc