最近、改めてオブジェクト指向の説明というものを見直すことがあったのですが、出てきた結論としては「イマドキのオブジェクト指向」という形で再編集しても良いのではないかと。 先週の丸山先生レクチャーシリーズ2007-2008 第3回「SOAの現在」で発表した「メッセージ指向によるシステム開発の変化の兆し ~遍在するメッセージ指向~」は、その表れ。ウルの河村さんと話しているときに盛り上がって、そのまま形にしたものです。 では、「イマドキのオブジェクト指向」とは何か。それはメッセージ指向という解釈です。オブジェクト指向は「メッセージによる処理の分割」であり、「分離された処理をオブジェクトと呼ぶ」と定義します。これまではオブジェクト指向とは「オブジェクトによる処理の分離」であったわけです。 背景 現在、ソフトウェアを作る時に重要なのは「処理をいかに分離し、作業を分担するのか」ということです。これはプ
オブジェクト指向は単なるオブジェクト間のメッセージのやり取りに過ぎない、という言葉は、僕の身近な人たちにとっては僕から一度は聞いたことがあるだろう。そんな考えに関して注目エントリが下記。書いてある内容はほぼ同意なんだけど、部分的に引っかかりを感じざるを得ないので、僕の意見をエントリしてみる。 「 イマドキのオブジェクト指向」- アークランプ より: では、「イマドキのオブジェクト指向」とは何か。それはメッセージ指向という解釈です。オブジェクト指向は「メッセージによる処理の分割」であり、「分離された処理をオブジェクトと呼ぶ」と定義します。これまではオブジェクト指向とは「オブジェクトによる処理の分離」であったわけです。 太古の昔から、オブジェクトは「メッセージのやり取りによる処理の委譲の繰り返し」だったはず。「継承ではなく委譲を使いましょう」なんて思想は、オブジェクト指向の基本であり、それはメ
Welcome To LuRuJu Site LuRuJuとは、UMLモデリングツールJUDEのモデルデータをオブジェクト指向スクリプト言語Rubyで操作する為のライブラリです。 また、JUDEとWebフレームワークRuby on Railsとのダイナミックな連携を実現したLuRuJu on Rails(Railsプラグイン)も提供しています。 LuRuJuライブラリ及び本サイトは、ともにフリーエンジニアである野村周平(通称ばんちょー)が趣味で細々と作成しています。 現段階ではまだまだ未完成ですが、公開し皆様の意見をフィードバックしながらライブラリを育てていこうと考えています。 本ライブラリを使って頂いた方がほんの少しでもハッピーになれればこの上ない喜びです。 What’s New 2008-4-05 RubyForgeにLuRuJuのパッケージを登録しました 2008-3-21 LuRu
Naked Objects Groupは2日(ドイツ時間)、Naked Objectsの最新版となる「Naked Objects 3.0」を公開した。Naked ObjectsはJavaで開発されたアプリケーション開発プラットフォーム。Apache License Version 2.0の下、オープンソースソフトウェアとして公開されている。ドメインオブジェクトを開発するだけで、あとはNaked Objectsプラットフォームが自動的にユーザインタフェースとデータベースマッパを生成するという特徴がある。生成するUIの種類は指定可能。データベースとの連携にはJBoss Hibernateが活用される。オブジェクトを作成するだけであとは自動的に生成されることから「Naked Objects」という名称が付けられている。 特定のデータからアプリケーションを自動生成するフレームワークやプラットフォー
2006年11月16日16:55 カテゴリLightweight Languages オブジェクトは難しくない。難しいのはクラス 大人だからオブジェクトは難しくなる。子供にとっては実はオブジェクトは自然で自明で簡単だ。 オブジェクト指向を正しく理解する:ITpro オブジェクト指向はしばしば,とっつきづらく難しい技術と言われます。その理由の一つには,対象とする分野が広く,それぞれに深みがあることが挙げられます。しかし,それ以上にこの技術を難しくしている落とし穴とも言うべき原因が二つあると筆者は考えています。それは比喩を乱用する説明の仕方の問題と,「もの中心」を意味するコンセプト自体の問題です。事実、オブジェクト指向というのは最初は子供向けだったのだ。 このことを、現在「オブジェクトとはなんぞや」という大人たちは忘れてしまっている。 それで、オブジェクトとは何か、といえば、「自分が何が出来る
最近、プロトタイプ的継承の話しが盛り上がっています。 http://blog.livedoor.jp/dankogai/archives/50662064.html http://labs.cybozu.co.jp/blog/kazuho/archives/2006/10/javascript_string.php http://blog.livedoor.jp/dankogai/archives/50662606.html 最終形がやたら複雑になっています でも、実際はあそこまで複雑に書かなくても、できると思います ^^; そう思う理由 P 関数は object 関数の中でローカルのものである。コンストラクタとして使える必要はない。なので、 Atomic な場合でも P は function(){} でいい。 method 関数では P.prototype のプロパティに関数が代入されて
http://www.rubyist.net/~matz/20061007.html#p03 Haskellのモナドを「副作用」と思うか、「副作用を表現する(こともできる)データ構造であって、副作用そのものではない」と思うか…という話はさておき。 しつこいようだが、そもそも「オブジェクト → 状態 → 副作用」という連想がmisleadingなmythであるように思われる(駄洒落ではありません)。80〜90年代には、TAPLの32章「Purely Functional Objects」に代表されるような、λ計算におけるオブジェクトの様々な表現が提案されたし、Abadi & CardelliのA Theory of Objectsにも関数型オブジェクト計算の話題が大量にある。Javaのminimalな計算モデルであるFJですら、破壊的代入がないという意味で関数型言語になっている。要するに、O
<< 2006/10/ 1 1. [教会] お休み 2. 実家 2 1. U-20プロコン表彰式 2. インタビュー 3. Job Trends: ruby programmer 3 1. インタビュー 2. [OSS] OSS コンサル会社が設立 3. [Ruby] Rubyの生産性の高さはどこまで本当か? 4. [Ruby] block parameter to be local variables 5. ジョブズ氏のいないアップルが来る日--IT企業が直面する「後継者選び」 4 1. 即興トーク 2. [OSS] ソフトエイジェンシー、MySQL 開発者が直接サポートするサービスを開始 3. [OSS] Seasarは鶏か卵か? - ひが氏、キャズム越え柔道ストラテジ語る 4. 『現代という時代は、どのようなプログラミングを求めているのか? 5 1. [Ruby] Ruby on R
毎回、身近にあるモノや出来事など、簡単な【お題】を出題し、皆様にモデリングをして頂きます。次回の記事で、皆様の解答モデルの中から3つほど取り上げて、コメントを付けていくかたちで進めていきます。 目次 前回の問題(タイムテーブル) 読者解答モデル 解答例 今月号の問題 (出題) 解答モデルの送付について 参考文献 Elapiz (いらぴす)当選者発表 1.前回の問題(タイムテーブル) 前回の問題をもう一度確認しておきましょう。 【お題04】タイムテーブル 2006 年 4 月 7 日(金)にダイエットセミナーが開催されます。 プログラムは次の通りです。 時間 「運動」トラック ( A 会場) 「食事」トラック ( B 会場) 「医療」トラック ( C 会場)
Business Object State Management Using State Machine Compiler by Jason Zhicheng Li 01/05/2006 Business objects are often the most important pieces of an application. They are persistent and long-lived, and often have more than one state. At each state, the business behavior may be different. The business logic implementation can become complicated and hard to test and maintain because the
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く