Date:  Wed, 28 Nov 2007 17:43:04 +0900
Subject:  【オブジェクト倶楽部: 2007-42号】
X-Mail-Count: 00218

       ┏━━━━━━━━━━━━━━━━━━━━━━━━━━■
       ┃                         ■┃
      ●┃● ● オ ブ ジ ェ ク ト 倶 楽 部   ■ ┃
       ┃                       ■  ┃
       ┗━━━━━━━━━━━━━━━━━━━━━━■━━━┛
                          No.212 2007/11/28

■ I N D E X
┃
┣【Topics】クリスマスイベント2007 いよいよ来週から申し込み開始!
┣【Topics】ライトニングトークス出場者募集!(11月30日締切り)
┣【Topics】第19回XPユーザ会開催 〜気になるSCRUM〜
┣【プログラミング】Rubyで進むオブジェクトの道[26] 
┣【PF】ふりかえりガイド(番外編) - ふりかえりが目的のふりかえり
┗【アンケート】気になるシステム業界 ホントのところ

〇━━━━━━━━━━━━━━━━━━━━━━━━━━━T o p i c s━
 〇 クリスマスイベント2007 いよいよ来週から申し込み開始!
  〇 〇━━━━━━━━━━━━━ ━━・ 

オブジェクト倶楽部クリスマスイベント2007!お申し込み日のお知らせです。
今回のテーマは「オブジェクト指向」です。ゲストに酒匂寛氏、オブジェクト
の広場の皆さんをお招きします。いつもどおり楽しく!かつお気軽に参加して
くださいね。ワールドカフェやライトニングトークスも、もちろんありますよ!
この機会をお見逃しなく!

【申込みご案内】
受付日:2007年12月5日(水) 12:00より
定 員:先着 160名
サイト:http://www.ObjectClub.jp/event/2007christmas/

【講演概要】
日 時:2007年12月21日(金) 10:00〜19:00(予定)
場 所:国立オリンピック記念青少年総合センター http://nyc.niye.go.jp/
テーマ:オブジェクト指向
内 容:講演、ワークショップ
参加費:無料
サイト:http://www.ObjectClub.jp/event/2007christmas/

【速報!】
イベント終了後、何かが!!
某コミュニティー主催による忘年会開催予定が決まりました。
オリンピックセンター内のレストランで開催の予定です。
詳しくは来週のメルマガで!こちらもお楽しみに!

〇━━━━━━━━━━━━━━━━━━━━━━━━━━━T o p i c s━
 〇 ライトニングトークス出場者募集!(11月30日締切り)
  〇 〇━━━━━━━━━━━━━ ━━・

いよいよ出場申し込みが締め切りになる30日が迫ってまいりましたが、まだ間
に合います!イベントで常に人気を誇るライトニングトークス、出場者はまだま
だ募集中です。あなたの「話してみたいこと」と「ちょっとの勇気」を持って、
ぜひご応募ください!テーマはなんでもOK。寒い冬をものともしない、あなたの
熱い思いをお待ちしております!

<参加申込>
下記詳細を明記のうえ、メールにてお申込みください。
Email : 2007xmas@objectclub.jp (担当:千葉)

応募締切り:11月30日(金)
選考の結果は、12月初旬ごろご本人にお伝えいたします。

■選考にあたって必要な情報
  タイトル、講演概要、トークス発表者名、会社名公開可否、YouTube公開可否

<参考>【特集】豆知識:ライトニングトークスの歴史
                http://www.ObjectClub.jp/ml-arch/magazine/173.html
    【記事】エンジニアマインドVol.3「ライトニングトークス入門」
                http://gihyo.jp/magazine/emind/archive/2007/vol3

〇━━━━━━━━━━━━━━━━━━━━━━━━━━━T o p i c s━
 〇 第19回XPユーザ会開催 〜気になるSCRUM〜
  〇 〇━━━━━━━━━━━━━ ━━・

12月3日(月)に、第19回XPユーザ会が開催されます。「XP」ユーザ会ですが、
今回のテーマはアジャイルプロセス「SCRUM」です。特に欧米ではSCRUMが最近
人気らしいですよ。今回はSCRUMを実践されているエマーソン ミルズさんに、
基礎から事例までにわたるSCRUM話をしていただきます。終了後は忘年会です!

【詳細】 http://jucalion.s66.xrea.com/xoops/modules/eguide/event.php?eid=4
【日時】12/3(月) 19:30〜21:00 (開場 19:00)
          懇親会 21:30〜「はなの舞 茅場町店」http://r.gnavi.co.jp/g146200/
【場所】日本アイ・ビー・エム(株)箱崎事業所 1階 
        AVルーム(ロビー・フロア奥)
        http://www-06.ibm.com/jp/ibm/map/hakozaki.html
【内容】「アジャイルプロセスSCRUM(仮)」orinoco エマーソン ミルズ様
        (日本語による講演です。講師は日本語ペラペラです)
【費用】無料 (懇親会は\4,000-)
【申込】xpjug.staff+19@gmail.com 宛てに、以下のフォーマットでメールを
        送ってください。
------------------------------
・お名前
・所属会社/組織
・懇親会の参加:○ or ×
・なにか一言
------------------------------ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━1 s t ■━
■
┗【プログラミング】Rubyで進むオブジェクトの道[26] 

■はじめに
今日はRSpecでモックの書き方を勉強します。

書きたいプログラムはCSV文字列(例:"2, 7, 1, 8")をソート済みのIntegerの
配列(例:[1,2,7,8])に変換するフィルターとします。
フィルター後に呼ばれるメソッドは、ブロックで引き渡すことにします。

ではソースコードを。

■RSpecのソースコード

describe CSVToSortedIntArrayFilter do
  before do
    @mock = mock("フィルターの先のモック")      #1
    @filter = CSVToSortedIntArrayFilter.new
  end

  it "CSVを昇順にソート済みの数値の配列に変換するフィルターの役割を果たすこと" do
    @mock.should_receive(:call_this).with([1,2,7,8])   #2
    @filter.run("2, 7, 1, 8") { |nodes| #3
      @mock.call_this(nodes)             #4
    }
  end
end

class CSVToSortedIntArrayFilter
  def run(csv)
    yield(csv.split(",").collect{|node| node.to_i }.sort)
  end
end

■解説

#1は、モックオブジェクトを生成しています。
#2は、テスト対象とコラボレートするモックに対して期待する振る舞いを記述
しています。
その期待は、「モックは『call_this』メッセージを1回受け取り、その引数の
値は『[1,2,7,8]』 であること」です。
#3は、実際にテスト対象のrunメソッドを呼び出しています。
#4は、runメソッドを呼び出す際にブロックでモックのメソッド呼び出しをして
います。
runがうまく振る舞えば、ブロック引数のnodesの値は[1,2,7,8]になります。

ここで、次に注目してください。
テスト対象の@filterに対して直接的に期待したフィルター処理が行われている
かを問い合わせていません。
というよりも@filterは状態を持たないので、@filterの状態を調べてrunメソッ
ドが期待した振る舞いをしているか調べる訳にはいきません。
@filterが期待した振る舞いをしているかは、テスト対象の@filterとコラボ
レートする@mockを使って間接的に調べています。

■補足:Behavior VerificationとState Verification

今回のフィルターテストのように、テスト対象が期待した振る舞いをしたかを
テスト対象に直接状態を問い合わせるのではなく、モックなどを使って間接的
に調べるテストアプローチをxUnit Patternでは、Behavior Verification[*1]
と呼んでいます。
#テスト対象が期待した振る舞いをしているかを、テスト対象の状態で調べる
アプローチをState Verification[*2]と呼んでいます。

■おわりに

RSpecのモックを紹介しました。モックを使えば、テスト対象が状態を持たなく
ても、モックにテスト対象との期待するメッセージのやり取りを定義すること
で、テスト対象のテストを行うことができます。
今回は、モックがメソッドのリータン値を返す例、例外を発生させる例は割愛
しました。(IENAGA)

[1] : Behavior Verification
      http://xunitpatterns.com/Behavior%20Verification.html
[2] : State Verification
      http://xunitpatterns.com/State%20Verification.html
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E006-25&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E006-25&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E006-25&choice=2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━2 n d ■━
■
┗【PF】ふりかえりガイド(番外編) - ふりかえりが目的のふりかえり

こんにちは、天野勝です。
突然ですが、みなさんふりかえりやっていますか?
私は、セミナーの講師をすることが多く、セミナー終了後に、関係者(講師や、
アシスタント)とふりかえりをしています。それ以外の業務に関しては、一人
仕事が多く、一人でふりかえることはあっても、複数人でふりかえりをするこ
とは残念ながら、あまり多くありません。
しかし先日、一緒には仕事をしていない異なるプロジェクトの同僚4人でふりか
えりミーティングを行いました。一緒に仕事をしていないので、テーマらしい
テーマもなかったのですが、とても楽しく、有意義だと感じました。
そこでの気づきを紹介します。

□Keepで褒めあう
まずは、Keepからということで、「今後続けたいこと」を出すのですが、この
際に自分で思っている「良いこと」も挙げます。そうすると、参加者から「す
ごいねぇ」「いいね」と褒めてもらえるのです。普段あまり褒めてもらえない
私にとっては、それだけでモチベーションが上がります。

□Problemで懺悔する
Problem的なことをふりかえりの場で話すと、すっきりします。やはり、
Problemを抱えているのにもかからず、それを心にしまっておくというのは精神
衛生上あまり良くないのでしょうね。吐き出すと、すっきりするだけではなく、
気持ちも少し前向きになったように感じます。

□Tryでアドバイス、約束する
仕事は違えども技術に関しては似通ったところが多く、アドバイスがし合える
というのもうれしいところです。相談の場として、また教育の場としても効果
があったように思えます。
さらに、「〜する」と参加者同士で約束をするので、行動に移されやすくなり
ます。

□話すことで仲間意識が芽生える
一緒に仕事をしていないと、会話をする機会が減ってしまいます。このような
ミーティングをすることで、話すきっかけができ、仲間意識が芽生えたように
思えました。

このふりかえりミーティングは、「たまにはふりかえりをしてみようか」とい
うところから企画され、実施されたものです。企画というと大げさですが、ふ
りかえりをしてみたかったから、ふりかえってみた、というのが本当のところ
です。これなら、すぐはじめられそうですよね。ということで、一人作業が多
くて、チームでふりかえれないという方も、一度試してみてはいかがでしょう
か。

最後に、このふりかえりミーティングに誘ってくれた伊藤さんありがとうござ
います。また、このちょっと変わったふりかえりミーティングを企画してくれ
た高橋さんありがとうございます。(天野勝)

「ふりかえりガイド」は以下のページからダウンロードできます。
http://www.ObjectClub.jp/community/pf/#material
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=M001-24&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=M001-24&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=M001-24&choice=2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━3 r d ■━
■
┗【アンケート】気になるシステム業界 ホントのところ

今週は「ズバリ!クリスマスはどんな予定?」のホントのところ。すっかり街
はクリスマスのシーズン到来ですね。オブジェクト倶楽部のカレンダーも12月
は、クリスマスっぽい配色でおしゃれでしょ!さて、今年のクリスマスは3連休。
ズバリ、どんなことをして過ごす予定ですか?こっそり教えてください。

  家族とほのぼの。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=178&choice=0
  もちろん、愛に包まれて・・・。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=178&choice=1
  友人とワイワイ。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=178&choice=2
  おひとりさまでお気楽に。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=178&choice=3
  まだ予定が決まっていません。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=178&choice=4
  残念ながら、仕事だったりして。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=178&choice=5
  きっとオブラブのイベントの後で、二日酔い。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=178&choice=6
  それは秘密です。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=178&choice=7
  ちょっと語らせて!
     詳細をこのメールに返信ください!!

アンケート結果はオブジェクト倶楽部サイト上にて公開します。お楽しみに。
なお、前号「読者の皆さんの性別は?」の結果は公開中。ぜひご覧下さい。
⇒http://www.ObjectClub.jp/special/kininaru/vol177/PlonePopoll_results2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
■
┗編集後記

こんにちは、編集人です。いよいよ12月。あと1ヶ月で今年もおしまいなんて、
「うそ〜っ!」って感じですね。ところで、コミュニケーションなどについて
多く講演やコラムなどを手がける和田裕美さんのお話を聞きました。1年間は52
週間。1ヶ月や四半期、年間目標も良いけれど、52週それぞれにテーマを持って
過ごしたり、小さくても達成できそうな目標を持つことが大切とのお話でした。
さて、みなさんの今週はどんなテーマですか?気がついたら終わっていたとい
うことの無いよう、1週間のイテレーションにテーマを持って過ごしてみません
か?

さて、オブジェクト倶楽部カレンダーの12月分の電子データを公開します。
12月は「Refactoring Catalogue」です。プログラムを修正するときに、ぜひ
使ってみてくださいね。
http://www.ObjectClub.jp/special/#calendar

今週の強引な一言
*** 明も見ざるところあり(ことわざ)***
視力の強い者でも見落としや見そこないはある。完全ということは、望みがた
いという意味。なので、テストはなるべく自動化推奨ですね!納得です。
出典参考:故事ことわざ辞典 東京堂出版
(上田雅美)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
● ご意見、ご感想は         ⇒このメールに返信ください
〇 配信中止、アドレス変更は ⇒http://www.ObjectClub.jp/community/object_ml/help/
〇 免責事項、過去の記事は   ⇒http://www.ObjectClub.jp/community/object_ml/
■ 発行:オブジェクト倶楽部 ⇒http://www.ObjectClub.jp/
■ 編集代表:平鍋  健児
Copyright (c)2003-2007 オブジェクト倶楽部. All Rights Reserved.
powered by Eiwa System Management, Inc.