┏━━━━━━━━━━━━━━━━━━━━━━━━━━■
┃ ■┃
●┃● ● オ ブ ジ ェ ク ト 倶 楽 部 ■ ┃
┃ ■ ┃
┗━━━━━━━━━━━━━━━━━━━━━━■━━━┛
No.176 2007/02/21
■ I N D E X
┃
┣【Topics】ETロボコン2007 参加者募集のご案内
┣【Topics】Developers Summit 2007 お待たせしました。資料公開!
┣【コラム】たまには良いかな?組込みな話 〜ETロボコン〜
┣【設計】ソフトウェアのお言葉[16] - クラスと型は同じもの?
┗【アンケート】気になるシステム業界 ホントのところ
〇━━━━━━━━━━━━━━━━━━━━━━━━━━━T o p i c s━
〇 ETロボコン2007 参加者募集のご案内
〇 〇━━━━━━━━━━━━━ ━━・
組込みソフト ウェア技術教育をテーマとしたETロボコンは6年目を迎えました。
今年のETロボコンは、参加者数の増加に対応し、地区予選会を実施します!
詳しくは公式ホームページをご覧くだい!
公式ホームページ⇒http://www.etrobo.jp/
〇━━━━━━━━━━━━━━━━━━━━━━━━━━━T o p i c s━
〇 Developers Summit 2007 お待たせしました。資料公開!
〇 〇━━━━━━━━━━━━━ ━━・
2007年2月14日〜15日にDevelopers Summit 2007が開催されました。多くの出会
いと学びにあふれた、刺激的な2日間でした。
オブジェクト倶楽部のコミュニティライブ、角谷信太郎のセッションへも、た
くさんの皆さんにご参加頂きました。心より感謝申し上げます。
早速ですが、当日資料を公開いたしました。
「もう一度あの空気を味わいたい!」「参加できずに残念!」どちらの皆さん
も、ぜひチェックしてみてくださいね。
●角谷信太郎
実践『From Java to Ruby』
〜血があつい鉄道ならば/走りぬけてゆく汽車はいつかは心臓を通るだろう〜
●コミュニティライブ
「オブジェクト倶楽部流オブジェクト指向入門」
【公開ページ】http://www.ObjectClub.jp/event/developers_summit2007/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━1 s t ■━
■
┗【コラム】たまには良いかな?組込みな話 〜ETロボコン〜
皆さん、ロボコン知ってます??そう。テレビで放送されたりしてるロボコン
です(事務局注:赤い、あのロボコンじゃありませんよ)。ソフトウェア屋さ
んからすると「いやいやロボットなんて作れないし…」と見るだけのものになっ
てしまいますよね。
そこで、今日は「ETソフトウェアロボットコンテスト(愛称:ETロボコン)[*1]」
という、ソフトウェアで勝負するロボコンがありますのでご紹介します。
ETロボコンはソフトウェアについて競い合うロボコンです。ロボットはLego社
のMindstorms[*2]を使用し、全てのチームが同じ条件で競技を行います。Lego
ブロックでライントレースするロボットを組み立てるのですが、このロボット
は各チームとも同じ設計図に基づいて組み立てます。モーターのチューンナッ
プは当然禁止です。ロボットの動き(コースを回る時間)以外に、ソフトウェア
の設計も審査対象です。UMLで描かれたモデルの妥当性や美しさなど、多くの観
点で審査されます。
オブジェクト倶楽部からは主宰の平鍋が審査員として、私、山口も技術委員と
して参加しています。
何かと画面と睨めっこになりがちな毎日かと思いますが、自分の思いどおりに
"もの”が動くと大人でもウキウキしてきちゃいます。皆さんもぜひ一度参加・
観戦してみてはいかがでしょうか。
自分の書いたUMLが著名な審査員[*3]に評価してもらえたり、1つの問題に対し
て100を越える[*4]モデルを見比べたりできる機会は、ETロボコンだけですよ。
#実は、オブジェクト倶楽部のメンバも過去に3人参加しています。(山口)
[*1] http://www.etrobo.jp/
[*2] http://mindstorms.lego.com/
[*3] http://www.etrobo.jp/Committee.htm
[*4] 2006年参加チーム数実績
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=H003-23&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=H003-23&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=H003-23&choice=2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━2 n d ■━
■
┗【設計】ソフトウェアのお言葉[16] - クラスと型は同じもの?
こんにちは、天野勝です。
今回のお言葉は「クラスと型は同じもの?」[*1]です。今回も筆者の独断と偏
見で、解釈、解説してみます。
●クラスの存在意義
筆者がこれまでに利用してきたオブジェクト指向言語である、JavaやC#では、
まずプログラミング時にクラスを定義し、実行時(ランタイム)に、そのクラス
を雛形としてインスタンスを生成し、そのインスタンス同士がメッセージを伝
達しあって、協調しながらシステムとして動作するというのが、基本スタイル
です。
クラスには、どのような状態を持つかをフィールドとして定義し、メッセージ
を受け取ったらどのように振舞うべきかといったルール的なことをメソッドと
して定義します。コンパイラによって、他のクラスのインスタンスに対してメッ
セージが送れるか(メソッドを呼び出せるか)についてチェックして、所望する
メッセージを受け取れない場合はエラーとして報告されます。このようなメソッ
ド呼び出しをうまく使って、ポリモフィズムが実現されています。また、クラ
スを定義するときに、継承という仕組みを使うことで、他のクラスを元に差分
だけを定義するということもできます。
プログラミングをするには、クラスを作らなくてはいけません。このようなプ
ログラム言語の世界においては、クラスこそがプログラムの中心なのです。ク
ラスなしではプログラムは作れないのです[*2]。
●DRY原則とクラス
クラスがあることで、どのようなメリットがあるのでしょうか。
筆者は、大きく二つのメリットがあると考えています。
一つは、記述量を減らすことができるということです。
オブジェクト指向なパラダイムでは、オブジェクト同士の協調によりシステム
が動作すると考えます。この実行時の状態をなんらかの方法で実現すればよい
わけです。Javaでは、その一つ一つのオブジェクトを効率よく生み出すために、
プログラミング時にクラスを定義し、そのインスタンスとしてオブジェクトを
生成するという仕組みで実現しています。一つのクラスから複数のインスタン
スを生成できる仕組みをマルチインスタンスと呼ぶことがあります。Personク
ラスのインスタンスとして、田中さんオブジェクトと、鈴木さんオブジェクト
を作るのではなく、それぞれのオブジェクトをいちいちプログラミングしてい
たとしたら、コードの記述量が膨大になってしまうでしょう。なかには多くの
ダブったコードが出てくることでしょう。
これはDRY原則[*3]の観点から見ても好ましくありません。
もう一つは、コンパイラによるエラーチェックです。クラスをユーザ定義型と
して扱い、コンパイラに型チェックをさせるという型システムとしての側面か
ら見ると、実行する前にコンパイラでエラーをあぶりだせるというのも大きな
メリットといえるでしょう。
●静的型付け言語と動的型付け言語
コンパイラでエラーをあぶりだせるのは、静的型付け言語の特徴です。
しかし、世の中にはコンパイラを持たない言語も多くあります。その中で、
RubyやPythonのような動的型付け言語においては、メッセージを受け取ったと
きに、そのメッセージに反応できれば何かしらの振る舞いをし、反応できない
ようであればメッセージの送信元に受け付けられないと応答する、という仕組
みを備えています。動的型付け言語では、もはやクラスには型としての意義は
存在しません。
●おわりに
オブジェクト指向プログラミングにおけるクラスの役割について、筆者なりの
解釈を解説しました。クラスは静的な型付け言語においては型としての役割を
担いますが、動的な型付け言語には型としての役割はほとんどありません。
このため、単純なエラーを発見するにも実行させてみることが必要になります。
具体的には、ユニットテストを行うのがよいでしょう。このように書くと、動
的型付け言語が、静的型付け言語よりも劣っているような印象を受けるかもし
れませんが、筆者はそのようには考えていません。テスト駆動開発が当たり前
となってきた2007年2月時点[*4]では、少し作っては素早くユニットテストによ
りプログラムを実行して動作を確認するので、コンパイル単位ごとにコンパイ
ルしてエラーを報告させるということに、それほど重要性を感じていません。
(天野勝)
[1]:『オブジェクト指向とコンポーネントによるソフトウェア工学』
著:ペルディダ・スティーブ、ロブ・プーリー、監訳:児玉 公信
ピアソン・エデュケーション(2000)
http://amazon.co.jp/o/ASIN/4894712636/xpjp-22
[2]:プロトタイプベースの話はここでは忘れてください。
[3]:DRY原則
「Don't Repeat Yourself」の略。
重複したコードを書かない、同じ事を繰り返さないということ。
[4]:筆者のまわりではTDDはもはや当たり前の領域なのですが、皆さんのとこ
ろはいかがでしょうか?
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=L001-15&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=L001-15&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=L001-15&choice=2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━3 r d ■━
■
┗【アンケート】気になるシステム業界 ホントのところ
今週は「普段やっている会議のなかで、一番困ることは?」のホントのところ。
私たちは日ごろ色々な会議に出席しています。広く考えれば、打ち合わせ、
ミーティングと色々呼び名がありますが、会議では出席する人の貴重な時間を
使っています。さて、皆さんが普段出席していて、一番困ることってどんなこ
とですか?
準備が悪い。(召集通知、資料など)
http://www.ObjectClub.jp/special/kininaru/vote?vol=142&choice=0
時間が長い。予定時間を過ぎる。
http://www.ObjectClub.jp/special/kininaru/vote?vol=142&choice=1
会場環境が悪い。
http://www.ObjectClub.jp/special/kininaru/vote?vol=142&choice=2
結論が出ない。目的があいまい。
http://www.ObjectClub.jp/special/kininaru/vote?vol=142&choice=3
誰かの独壇場。
http://www.ObjectClub.jp/special/kininaru/vote?vol=142&choice=4
メンバーの参加意識が低い。
http://www.ObjectClub.jp/special/kininaru/vote?vol=142&choice=5
自分には興味がない内容。主体的に参加できない。
http://www.ObjectClub.jp/special/kininaru/vote?vol=142&choice=6
参加者の内職やひそひそ話。
http://www.ObjectClub.jp/special/kininaru/vote?vol=142&choice=7
はっきり言って、メンバーが悪い。
http://www.ObjectClub.jp/special/kininaru/vote?vol=142&choice=8
それは秘密です。
http://www.ObjectClub.jp/special/kininaru/vote?vol=142&choice=9
ちょっと語らせて!
詳細をこのメールに返信ください!!
アンケート結果はオブジェクト倶楽部サイト上にて公開します。お楽しみに。
なお、前号「プログラマーの定年って何歳ぐらい?」の結果は公開中。
ぜひご覧下さい。
⇒http://www.ObjectClub.jp/special/kininaru/vol141/PlonePopoll_results2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
■
┗編集後記
こんにちは、編集人です。今更ながらデジカメを買おうと思うのですが、色々
と種類が豊富で、なかなか選べないですね。メモリーの容量や重さやデザイン。
メーカーやカラー、画素数に大きさ。結局1時間も見たのに、手ぶらで帰って
きてしまいました。家電製品って本当にどう選ぶのか難しいですね。
誰か良きアドバイスをお待ちしています!その他には、DVDレコーダーが選
べません。
今週の強引な一言
*** 思い立ったが吉日(ことわざ)***
暦を見て吉日を選ぶまでもなく、思い立った日を吉日として行なえということ。
これができたらテストしよう、あれができたらテストしようと思っているうち
に、いつのまにか、手をつけていないテストが山積ってことはありませんか?
今どうやったらテストできるか、って考えることが、テスト駆動開発に慣れる
第一歩です。
(上田雅美)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
● ご意見、ご感想は ⇒このメールに返信ください
〇 配信中止、アドレス変更は ⇒ttp://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.