[ooaa main]  [object pasta2]   [essence] (旧blogはこちら)  [flickr]  [myspace]  [View Eiichi Hayashi's profile on LinkedIn] 

現実的なオブジェクト指向

会社の方針でオブジェクト指向に注力とあるけども、逆にいまさら「オブジェクト指向」って銘打つこと自体が古く感じてしまう。うがった見方かもしれませんが。 
2つの方向性がある。一つは「オブジェクト指向」自体がすでに枯れた技術になっているという点と、現実の業務アプリのプロジェクトへの適用ではドメインリッチな、いわゆる古典的な「オブジェクト指向」な実装は現実解ではなくて、ほとんどコボルで実装していたのと一緒のコンポーネント指向な実装が主流になっているという点。

オブジェクト指向」な実装はどちらかというと、局所てきなデータ構造変換に使うことが多いと思う。 たとえばよくあるのは、永続化されたデータとプレゼンテーションドメインの構造との間のデータ構造変換。 これは、未だに「オブジェクト指向」的な実装センスが問われる部分。

あとは、システム的なもの、共通部品の実装や既存の汎用フレームワークに対してその業務固有の性質や非機能的要件を満足するために作る中間層の実装。 ここら辺がとてもよく活躍する。 実装レベルではそんなところではないだろうか。 いちばんホットなのは要件分析やあたらしい要求開発の分野だろう。 あとはオブジェクト指向を前提としたあたらしい開発プロセスのの方に注意があるように思う。

業務の分野では業務アプリみたいにDBへの読み書きが主な目的のものではないものは、とてもよく活躍するように思う。とくに組み込み系のリアルタイム制御で使えそうだか現実としてどうなのだろう。 実際の現場の適用例を聞いてみたいところ。
直近の経験ではPCと組み込み機との間の通信に関する通信プロトコル層の実装は、プロトコルの構造をドメイン領域とした古典的オブジェクト指向の実装がとてもよくマッチした。

DIコンテナやEJB3.0がらみは、まだ主流にはなっていないが、今後の要チェック領域。 いずれにせよRDBが主なストレージであるかぎり、業務アプリでドメインリッチな実装が復活することはないというのが、私の直感的感覚なんだけど、みなさんはどうだろう。