InfoQ ホームページ Object Oriented Design に関するすべてのコンテンツ
-
新たなオープンソースプロジェクトがオブジェクト指向データアクセスを提供
Kasper Sørensen氏は、eobjects.dkでMetaModelと呼ばれる新たなオープンソースプロジェクトを作成した。そのプロジェクトは、リレーショナルデータベースおよびフラットファイルというようなさまざまなデータストアタイプ向けの共通ドメインモデル、クエリーエンジンおよび最適化プログラムである。MetaModelは、Javaライブラリであり、SQL準拠のクエリー向けに緩やかなオブジェクト指向インターフェイスを提供する。
-
Googleがバイナリエンコード形式「Protocol Buffers」を公開
Googleは最近、データ交換フォーマット「Protocol Buffers」をオープンソースとして公開した。その平凡な名前の裏には、とある要素が隠されている。
-
オブジェクト・リレーショナル・マッピング - ユーザのケーススタディ
ODBMS.orgのRoberto Zicari教授はオブジェクト/リレーショナル・マッピング技術のユーザ数名と面接し、話を聞いた。今回の事例では、ドメインモデルにおけるオブジェクト技術とデータモデルにおけるリレーショナル技術の「インピーダンス不整合」が主要ポイントであった。
-
Neo4j - 組み込み型のネットワークデータベース
Neo4jは組み込み型で高性能な軽量の永続化ソリューションである。ネットワーク・データベース・モデルに基づいており、これは近ごろ高い関心を得ている。
-
Rails Cells: Railsのコンポーネント指向開発
Rails Cellsの目的は、コンポーネント指向開発の利点を、Ruby on Railsのウェブアプリケーションプラットフォームにもたらすことだ。Cellは、結合したビューを備えた軽量コントローラの一種であり、ビューをウェブサイトに組み込むことが可能だ(SmalltalkのウェブアプリケーションフレームワークSeasideと似ている)
-
単純なデザインの導入
extremeprogramming Yahoo!グループで単純なデザインについての討論がおこなわれており、すでに有益な提言がなされている。インクリメンタルデザインに関するリファレンスの話題から、インクリメンタルデザインを導入する方法について討論が進んだ。
-
ドメインドリブンデザインはDIやAOPなしでも十分な実装可能か?
ドメインドリブンデザイン(DDD)はビジネスドメインコンセプトをソフトウェアにマッピングすることだ。これまでDDD実装法の中心はオブジェクト指向プログラミング(OOP)だった。OOPではオブジェクトがビジネスドメインの実体を表し、そのドメインオブジェクトをプレインなJavaクラスやインターフェイスでデザインすることで、���承・カプセル化・ポリモーフィズムといったOOPの考え方を利用できる。
-
TDD/BDDは不完全なユニットテストを招くか?
Peter Ritchie氏は、TDDやBDDにこだわることで、良いユニットテストを書かなくなる傾向があるのではないか、という懸念を表明した。特に「インタラクションテスト(interaction testing)」というマントラは、不完全なユニットテスト、すなわち、どのような条件下で利用されても稼働するユニット(オブジェクト)である、という証明ができていないテストをもたらすと述べている。Peter氏の考えで最も興味深いのは、TDDとBDDのそもそもの意図に対する反対意見と受け取れるところだ。
-
プライベートメソッド、テスト駆動開発と優れたデザイン
テスト駆動の開発(TDD)が優れたデザインを促進するという主張が成された。TDDがアーキテクチャとデザインに悪影響を及ぼすという主張も成された。抽象性を論じるよりもそれは少し具体性を加えるので私達はプライベートメソッドと優れたデザインとテスト容易性とその関係性に重点を置くことにした。これは明らかな矛盾の一例である。
-
Naked Objects に、Java1.5、インジェクション、Hibernate が追加される
Naked Objects はドメインオブジェクトが中心的役割を担うアプリケーションを開発するためのアーキテクチャパターンでありフレームワークである。Naked Objects アプリケーションにおけるドメインオブジェクトはユーザインターフェースの中心部を形成し、開発作業の焦点である。このNaked Objects が最近バージョン3.0をリリースした。
-
Qi4jがComposite Oriented Programmingを発表
Rickard Oberg氏がOredevにてQi4jを発表し、また”クラスは終わりでインターフェース万歳”と宣言した。Qi4jはビヘイビアがクラスに置かれなく、代わりにクラスがアノテーションを介したクラス上で宣言されたインターフェースとmixinのコンポジットになるコンポジット指向のプログラミングという、新しいアイディアを導入している。
-
柔軟性、構造安定性のデザイン: 非同期メッセージモデル、OOPとFunctional Programming
Pragmatic Programmersによると、オブジェクト指向のプログラミングにおいては”データを尋ねるよりもむしろオブジェクトに頼む”ほうが好ましいということだ。またFeathers氏は適応性と強固性の向上に役立つかもしれない非同期のメッセージを使用するほうが効率的であることを議論している。これによって純機能的なプログラミングの規則に反しているものの、Erlangが位置づけされる。
-
Javaデベロッパ用のActionScript Virtual Machineを理解する
ActionScript Virtual Machine 2(AVM2)はActionScript 3.0(AS3)バイトコードをFlash Player 9ランタイム内で実行する。Action Script 3はオブジェクト指向のプログラミング言語で、Adobe FlexとAIR内でFlashベースのアプリケーションを構築する際に使用されている。
-
Active Recordパターンを使用中の柔軟性の保持
Rails、Hibernate、他のORMツールに使用されているActive Recordパターンはdatabase rowのオブジェクトへのマッピングを許容するデータ持続パターンである。しかしながらこの実用的なツールはBob Martin氏によると混乱の源であるそうだ。 柔軟性を保つにはBob Martin氏はActive Recordをアプリケーションから分離させることを提案しており、そうすることによって後者はオブジェクトの周りで単一でデザイン、また構成することができるのである。
-
オブジェクト指向プログラミング:より良いデザインのために動詞・名詞のメタファーを超えて考える
オブジェクト指向のプログラミングにおいて、オブジェクトは従来的にオブジェクトのメソッドとして実装され、そのビヘイビアを決定するアクションと結合されている。Reg Braithwaite氏はいくつかのケースにおいてその二つを分離させることに関連していることを述べている。またBuko Obele氏は通常オブジェクト指向のデザインに使用されている動詞・名詞メタファーを超えて考慮し、OOPへの従来的なアプローチを問うている。