かつのりの日記2

わんくまでは珍しいJavaを中心とした日記です

目次

Blog 利用状況

書庫

日記カテゴリ

いろいろリンク

フレームワークのデザイン

もうそろそろ、まともなプロダクトを一つ作りたいと思っているのですが、候補としてDIコンテナやORマッパー等を考えていますが、まずはDIコンテナを作りたいなと思っているところです。そこで自分なりのフレームワーク構築の為のガイドラインについてまとめてみようと思います。

まずフレームワークを構築する為にはデザインが必要となりますが、フレームワークをデザインするときは、ボトムアップ的なアプローチが必要になります。ボトムアップ的なアプローチを無視すると、フレームワークを利用した実装コードが非常に書きにくくなります。これはオープンソースであってもシステム開発プロジェクト専用の独自フレームワークでも同じです。

自分の場合はフレームワークを利用した仮想コードから書くようにしています。そこにはUMLやら、なんちゃらプロセスやら、小難しい概念なんて何もありません。単純にテキストエディタで仮想コードを書き連ねていけばよいのです。例えばデータベースにアクセスするフレームワークを考えるとしましょう。まずは「こんな感じで書ければ楽かな~」くらいでいいのです。フレームワークの実装なんて全く気にする必要はありません。

上記コードは全く何も考えずに書いてみました。実装なんてものはなく、こうやって書けばSQLの実行が楽じゃないかな的なアプローチです。(実際に楽か楽じゃないかの議論は別として)

これから、上記コードが有効となるようなフレームワークを構築すれば、自然と楽なコードで実装が可能なフレームワークが出来上がるわけです。実際には最低限の汎用性や拡張性を考える必要もあり簡単ではありませんが、まずトップダウン的な要求を無視して実装してみる事です。

トップダウン的な要求の通りに実装すると、「あれもできた方がいいんじゃね?」みたいな意見に押しつぶされて、本当に使うか分からない機能の為に、無意味に汎用化されたフレームワークが出来上がることが多いです。無意味に汎用化されたフレームワークは、標準の方法と手続き方法が違うだけであったり、コードを書くのと何ら変わらないボリュームの設定ファイルが必要になったりします。

 

ちなみに今実装したいなと考えているのはDIコンテナです。

こんなコードで設定を書いて、

というようにコンテナが取得できれば楽かなと思って実装していこうと考えています。

投稿日時 : 2007年8月27日 1:58

Feedback

# re: フレームワークのデザイン 2007/08/27 9:11 凪瀬

お。やっと始動ですね。
DIコンテナは既存でいくつかあるわけですが、何か売りになるアイデアがあるのですか?
車輪の際発明だとしても、技術的には面白そうに思いますが、「これがしたい!」というネタがひとつは欲しいな。

# re: フレームワークのデザイン 2007/08/28 0:56 かつのり

アイデアは全然ないっす・・・
せめて設定ファイルレスにしたいところです。さらに注釈レスも。

以前Seasar2の2.3系やSpringの2.0以前のバージョンと
ほぼ同等のDIコンテナを作ったのですが、結局捨ててしまいました。
だって、ほぼ同じならSeasar2とかSpringでいいんだもん。って感じで。

とにかくフルスタックなコンテナが増えている中で、
逆に軽量+プリミティブな機能+拡張自在を売りにしたいですね。

# re: フレームワークのデザイン 2007/08/28 12:54 凪瀬

非singletonなDIってのが面白そうなんですけどねぇ。
基礎理論からやることになるんで大変だけどw

# re: フレームワークのデザイン 2007/08/28 15:05 かつのり

非singletonっていうのはコンテナ?管理されるクラスのインスタンス?

# re: フレームワークのデザイン 2007/08/28 21:21 凪瀬

説明しにくいんですが、私の中ではDIコンテナの概念がコンストラクタへのAOPという拡張概念で捉えているのですね。

そして、木構造のインスタンス生成に対して親から子へとプロパティを受け継ぐような形で参照を渡せる仕掛けがあるとよいのかな、と。
いまだとFactoryに対してDI注入してやれば似たようなことが可能なのかなぁ。

概念の拡張を考えているので、実装の形、利用の際のメリットデメリットといったところを精査する必要があります。

# re: フレームワークのデザイン 2007/08/28 22:33 かつのり

じゃ、ちょっとDIコンテナについてまとめてみますか。

# kQEBMksttHOIntLa 2011/12/13 18:04 http://www.birthcontrolremedy.com/birth-control/cl

Hooray! the one who wrote is a cool guy..!

# lMrpnbvQMbj 2011/12/26 23:01 http://www.discreetpharmacist.com/ita/index.asp

Uh, well, explain me a please, I am not quite in the subject, how can it be?!...

# EkcTAHHkiYooWcvJMNa 2011/12/27 6:03 http://www.hansensurf.com

Strange but true. Your resource is expensive. At least it could be sold for good money on its auction!...

# YvHQakpUGDRgO 2011/12/28 2:57 http://www.seokiwi.com

Fresh thoughts, fresh view on the subject..!

# jCtUrMrnIIzpTOt 2011/12/28 6:46 http://www.seokiwi.com/

Cool:) I would say say it exploded my brain..!

# pleaYSXKZNlrIGDs 2011/12/29 2:52 http://www.seokiwi.com/

Sent the first post, but it wasn`t published. I am writing the second. It's me, the African tourist.

# BobwaNEHdNOESYk 2012/01/14 2:53 http://www.michelegreenmd.com/

comment5

タイトル
名前
Url
コメント