Date:  Wed, 13 Feb 2008 16:27:45 +0900
Subject:  【オブジェクト倶楽部: 2008-06号】
X-Mail-Count: 00228

       ┏━━━━━━━━━━━━━━━━━━━━━━━━━━■
       ┃                         ■┃
      ●┃● ● オ ブ ジ ェ ク ト 倶 楽 部   ■ ┃
       ┃                       ■  ┃
       ┗━━━━━━━━━━━━━━━━━━━━━━■━━━┛
                          No.222 2008/02/13

■ I N D E X
┃
┣【Topics】デブサミ2008のコミュニティライブ枠にオブジェクト倶楽部も参加!
┣【書籍紹介】リーン開発の本質 ― ソフトウエア開発に生かす7つの原則
┗【プログラミング】Flex2で体験するリッチクライアント[3]

〇━━━━━━━━━━━━━━━━━━━━━━━━━━━T o p i c s━
 〇 明日のデブサミ2008のコミュニティライブにオブジェクト倶楽部も参加!
  〇 「出張!北欧勉強会 in デブサミ2008」
     〇 〇━━━━━━━━━━━━━━━・
現在弊社で行われている「北欧勉強会」ことオブジェクトデザイン読書会を
デブサミ2008のコミュニティライブ枠で行うことになりました。その名も
『出張!北欧勉強会 in デブサミ2008』です。

■日 時:2008年2月14日(木) 10:20〜10:50
■場 所:目黒雅叙園 デブサミライブ会場 (華しらべ)
■持ち物:オブジェクトデザイン (邦訳/原著どちらでもOK)
      http://www.amazon.co.jp/o/ASIN/4798109037/xpjp-22

▼内容
オブジェクトデザインの本を、みんなで読みます。
初めて読む人でも読みやすそうな6章から読み始めることにしました。

▼「オブジェクトデザイン」を持っていないよ!という方には・・・
デブサミ会場内翔泳社のショップにて購入することができます。
会場特別価格!税込み3990円⇒3590円にて販売しています。(20冊限定)
どうぞご利用くださいね。

詳しくは http://wiki.fdiary.net/ObjectDesignReading/ へどうぞ

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■━
■
┗【書籍紹介】リーン開発の本質 ― ソフトウエア開発に生かす7つの原則

こんにちは、天野勝です。
私が翻訳に携わった『リーン開発の本質 ― ソフトウエア開発に生かす7つの原
則』が2月12日に出版されました[*1]。

■ソフトウェア開発を製造業の経営のメタファで説明

ソフトウェア開発はとても若い産業であり、世の中の発展している産業と比較
すると、まだまだ発展途上である。発展途上であるがゆえに、その特徴を理解
するにあたり、これまで他の産業のメタファを使って説明されてきた。そのメ
タファの代表的な例が、ビルなどの大型な建築物の工事である。このメタファ
で説明がつくこともあるが、すべてのソフトウェア開発を説明しきることは到
底できない。工事のメタファであるがために、多くの勘違いが引き起こされて
いるのも事実である。その他にも、植物を育てるといったメタファを用いるな
ど、さまざまなメタファで説明しようと試みられている。このようなメタファ
の一つとして、成功している製造業の経営のメタファを用いて、ソフトウェア
開発を説明したのが「リーンソフトウェア開発」である。
この本では、リーンソフトウェア開発の核となる「リーン思考」をシンプルに
7つの「原則」としてまとめ、それぞれを丁寧に紹介している。

■前作との違い

原著者の二人は、この本の前作として『リーンソフトウエア開発』[*2]を出版
している。前作でも7つの原則を中心に説明しているが、この本ではその原則を
見直し、修正を行っている。

       『リーンソフトウエア開発』 『リーン開発の本質』
  原則1 ムダを排除する             ムダをなくす
  原則2 学習効果を高める           品質を作りこむ
  原則3 決定をできるだけ遅らせる   知識を作り出す
  原則4 できるだけ速く提供する     決定を遅らせる
  原則5 チームに権限をあたえる     速く提供する
  原則6 統一性を作りこむ           人を尊重する
  原則7 全体を見る                 全体を最適化する

上記の対比を見ると、順番だけが変わったものなど、さほど大きく変わっては
いないが、そのはしばしに著者らの思い入れが読み取れる。前作から、約4年の
歳月を経て、著者らの経験や知識が増えたことで、さらなる本質が見えてきた
といったところだろうか。その他にも、「7つのムダ」というキーとなるトピッ
クがあるが、こちらも細かくではあるが、修正が加えられている。より、本質
的な言葉に置き換えられた感がある。
前作では、ソフトウェア開発に特化していた。この本では、原則を適用して成
功しているビジネスの事例が紹介され、さらにソフトウェア開発での具体的な
説明と、その事例を紹介している。このような構成により、リーン思考が普遍
的な概念であり、とても応用範囲が広いことが分かるとともに、ソフトウェア
開発の現場においてもリーン思考が適用できることが具体例から読み取ること
ができる。
それぞれが携わる仕事の種類により、前提となるビジネス環境が異なり、それ
に追従して価値観も異なることは事実である。ビジネス環境の変化が激しいと
いう前提においては、リーン思考の適用が一つの有効策であることは間違いな
い。この本に紹介されている、ビジネス的な側面、ソフトウェア開発の側面で
のリーン思考の適用の事例により、その有効性を証明している。

■この本の活用方法

終わりに、翻訳に携わったものの立場から、おすすめの活用方法を紹介したい。
まずは、自分の現場を改善する際のリファレンスモデルとして活用できる。改
善の重要性はわかっても、いざとなるとどこから手をつければよいか分からな
い、ということはないだろうか。すべての原則を実践できている状態を目指し
てほしい。そして、そのステップについては、第10章の「やってみよう」に記
されている手順に従うのがおすすめである。
周囲の説得にも役立つだろう。リーン開発などの「アジャイル開発」に対して、
批判的な態度をとる人がいるが、そこには、何かしらの誤解があるのだと思う。
この本を読めば、経営的な立場でソフトウェア開発を見るきっかけとなり、お
およその誤解は取れるはずだ。
(天野勝)

[1] : 『リーン開発の本質 − ソフトウエア開発活かす7つの原則』
       メアリー・ポッペンディーク、トム・ポッペンディーク(著)
       高嶋優子、天野 勝、平鍋健児(翻訳)
       http://www.amazon.co.jp/o/ASIN/482228350X/xpjp-22

[2] : 『リーンソフトウエア開発 − アジャイル開発を実践する22の方法』
       メアリー・ポッペンディーク、トム・ポッペンディーク(著)
    平鍋 健児、高嶋 優子、佐野 建樹 (翻訳)
       http://www.amazon.co.jp/o/ASIN/4822281930/xpjp-22
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=A001-16&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=A001-16&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=A001-16&choice=2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■━
■
┗【プログラミング】Flex2で体験するリッチクライアント[3]

みなさま、こんにちわ。
いよいよ本日、日本でもInternetExplorer7の自動更新が始まりました。
ブラウザシェアからしても、何か混乱が起きても不思議ではない日ですが、皆
様はいかがでしょうか?しかし当初は6ヵ月後と言われていた自動更新が、世界
でも最も遅い時期になってしまったのは寂しいですね。
と思ったら、IE8がAcid2テストの正常表示(スマイリーマーク)に成功したそう
です。そしてベータ版が本年の前半には公開される予定ということで、やっと
IE7になったのに・・・
でもようやくブラウザ互換を考えなくて良い時代がやってくるのだな、と思う
とサイト製作者としては、ありがたいことですね。

さて前回[*1]まではアプリケーションのソースコードについて、サンプルを利
用して解説しました。今回は簡単なソースコードを書いて、コンパイル・実行
してみましょう。

■今回作るサンプルプログラム
入力ボックスに名前を入れると、メッセージを表示する簡単なプログラムです。
今回の目的はmxmlとActionScriptがどのように関連して動くかを学ぶことです。

+-------------------------------------------------+
|                                                 |
|  お名前:___________________________  [送信]    |
|                                                 |
|             こんにちわxxxxxxさん!              |
|                                                 |
+-------------------------------------------------+

と、こんな感じの画面をイメージしてください。

■ファイルの準備
インストールしたFlexのサンプルディレクトリ(flex2\samples_ja\)の下にメル
マガサンプルのディレクトリを作成し、以下のファイルを準備してください。
hello.mxml
HelloController.as

■アプリケーション(hello.mxml)の記述
はじめにアプリケーションファイルを記述します。

<?xml version="1.0" encoding="utf-8"?>
<Application xmlns="http://www.adobe.com/2006/mxml"; xmlns:local="*" width="100%" height="100%">
  <!-- 使用するActionScriptクラスを宣言 -->
  <local:HelloController id="controller" />
  <!-- データバインディングを定義 -->
  <Binding destination="message.text" source="controller.message" />
  <!-- 表示レイアウトを定義 -->
  <VBox width="100%" horizontalAlign="center">	 	
    <HBox>
      <Label text="お名前:"/>
      <TextInput id="yourName" />
      <Button label="送信" click="controller.send(yourName.text)" />
    </HBox>
    <Label id="message" />
  </VBox>
</Application>

xml宣言とApplicationタグは前回説明していますが、mxmlとして必要なので、
必ず記述してください。xmlns:local="*"と書くことで、コンパイル時にカレ
ントディレクトリのActionScriptファイルを自動的に検出してくれます。
次にlocalで始まるタグがあることに注目してください。このタグを記述するこ
とで、ActionScriptのファイルが利用可能になります。
local:に続く記述がActionScriptのクラス名(ファイル名)で、id属性にmxml中
で利用する名前を宣言します。
「<local:HelloController id="controller" />」の部分はJavaなどの言語で、

  HelloController controller = new HelloController();

と記述するのと同じ意味だと理解すればわかりやすいでしょう。

続いてBindingタグがあることにも注目してください。このタグは、mxml中の変
数と、ActionScript中の変数をマッピング(データバインディング)します。
つまり「<Binding destination="message.text" source="controller.message" />」
とは、messageというラベルのtext文字列と、HelloControllerのmessage文字列
を同期するという意味です。このようにデータバインディングを記述しておけば
自分でラベルタグに値を代入しなくても、messageの値が変わる度に自動的に表
示が変化してくれます。
後は表示レイアウトを記述するだけです。VBoxは含まれている要素を縦並びに
整列します。一方、HBoxは横並びに整列します。最初に記述した表示イメージ
と同じレイアウトになります。概ねのタグはHTMLと似ているので、想像はつき
やすいでしょう。
最後に送信ボタンがクリックされたときに、コントローラのsendメソッドが呼
ばれるように記述します。

■コントローラ(HelloController.as)の記述
次にコントローラクラスを記述します。

package
{
    public class HelloController
    {
        private var _message:String = "";

        public function send(name:String):void
        {
            message = "こんにちわ" + name + "さん!";
        }
        [Bindable] public function set message(value:String):void
        {
             _message = value;
        }
        public function get message():String
        {
             return _message;
        }
    }
}

mxmlファイルから呼び出していた、sendメソッドを定義します。
パラメータとして、入力された名前が送信されてくるので、文字列を結合しま
す。
ここで注目すべきは、mxmlでデータバインディングに記述したmessageというプ
ロパティがないことです。オブジェクト指向プログラミングで、クラスのプロ
パティに直接アクセスしないようにするために、setter,getterを準備するのは
ActionScriptでも同じです。ただしActionScriptでは

setMessage("こんにちわ" + name + "さん!");

と書くよりも、

message = "こんにちわ" + name + "さん!";

と書いた方が直感的に見えるため、暗黙的なget/setメソッドを使うことができ
ます。function set message() のようにfunctionの後にset/getを宣言するこ
とで、messageというプロパティに対して操作が可能となります。つまりmxmlで
記述した source="controller.message" というデータバインディングは、暗黙
的getを呼ぶことになります。このように暗黙的set/getを使う場合、値を代入
する式を、

_message = "こんにちわ" + name + "さん!";

のように記述し、直接クラスのプロパティを変更すると、messageの変更が通知
されないため、画面にはメッセージが表示されません。messageの暗黙的setを使
うと、messageが変更されたという事が、データバインディングで通知され画面
の表示も書き換わります。
[Bindable]はmessageプロパティが、データバインディングすることを意味する
宣言なので、必ず記述しなければなりません。もしこの記述がないと、
「データバインディングでは "message" への代入を検出できません。」
というコンパイルエラーが出力されます。

■動かしてみよう!
ソースコードを記述したら、コンパイルです。別のサンプルディレクトリから
build.batをコピーしてきましょう。このbuild.batはそのまま再利用可能です
ので、今回作成したコードと同じディレクトリに置いて実行するだけです。
build.batを実行すると「hello.swf」ができあがります。早速FlashPlayerで再
生してみましょう。どうですか?うまく「こんにちわxxxxさん!」メッセージ
が表示できましたね。

■まとめ
今回は、よくありがちなHelloWorldプログラムを、mxmlとActionScriptを連携
させて、動かしてみました。意外と簡単だな、と思ったのではないでしょうか?
Flashの作成はプログラマにとって、難しいというイメージがあるかもしれませ
んが、Flexを使うことで他の言語とそれほどの違いがないことがわかったと思
います。ビューとコントローラ、モデルの間の連携方法がわかれば、自らプロ
グラミングをしてみようかな?と考える第一歩になりますね。
(きしだ)

[1] : これまでのメルマガアーカイヴ
      第1回: http://www.objectclub.jp/ml-arch/magazine/209.html
      第2回: http://www.objectclub.jp/ml-arch/magazine/214.html
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E0012-3&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E0012-3&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E0012-3&choice=2

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

今週は「サンプルコード動かしますか?」のホントのところ。オブジェクト倶
楽部のメルマガに限らず、紙の雑誌とかWeb上の記事などで、プログラムのサ
ンプルコードを目にすることって多いですよね。手で入力して実際に動かして
みれば理解が深まるとはいえ、いちいち全部試してみるのも大変です。こう
いったサンプルコード、みなさんはどうしていますか?(やっとむ)

  環境があれば、極力全部入力して動かしている。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=188&choice=0
  使っている言語やフレームワークのものなら、試す。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=188&choice=1
  興味ある内容だったら、実行してみる。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=188&choice=2
  時間があるときなら、コピペで動作を見てみるかな。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=188&choice=3
  すいません、めったにやりません。。。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=188&choice=4
  脳内実行で100%理解できるから動かさない。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=188&choice=5
  コードが載ってたら記事ごとスルー。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=188&choice=6
  それは秘密です。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=188&choice=6
  ちょっと語らせて!
     詳細をこのメールに返信ください!!

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

こんにちは、編集人です。ちまたでは殺虫剤混入の餃子の話題でモチキリでし
た。被害にあわれた方には心からお見舞い申し上げます。まだ事件の原因は究
明の途中ということですが、一日も早く安心して食事が出来るようになるとい
いですね。ブログである人の日記を読んで思ったのですが、「安さ」や「早さ」
を追求しすぎて、負のスパイラルのなかでこの事件が起こってしまった可能性
は否めません。これってあながち、私たちの仕事のなかにも起きてしまうこと
なのかもと思ったら、ちょっと心がザワザワしました。本当に追求すべきこと
を見失わない。心がけたいと思います。

今週の強引な一言
*** 二人口は過ぎるが一人口は過ごせない(ことわざ)***
独身生活は不経済であること。収入は同じでも妻帯すれば、失費が減って生活
できるというたとえ。一人は何かと非効率です。例えばペアプロだったら二人
で作業するので、思い込みの作業を減らして手戻りを防ぎ、コードも人に依存
せず、できあがったときの喜びは2倍ですよ。しかも、PCは1台!お得〜!
出典参考:故事ことわざ辞典 東京堂出版
(上田雅美)

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