What’s Haricot
Haricotは業務システムを効率的に開発するためにエンティティを中心として組み立てられたフレームワークです。エンティティのコアの機能はすでに実システムにも使用された実績のあるもので、その上に様々な機能を実装していき組合せ可能なフレームワークとして実現していくものです。
まだ、発展段階にありますがDBアクセス部分が実用的な段階に達しましたので公開することになりました。
この活動は実際の業務システムの役に立つフレームワークを研究開発するための有志による活動です。現在コア部分とDBアクセス部分の開発はほぼ終了し、次にリッチクライアント向けの機能を実現すべく休日などに活動しています。この活動で得られたノウハウを実際の業務システムの分析や設計、アーキテクチャ構築に活かしています。
将来的にはWebベースとリッチクライアントベースを統一した方法で設計できる、プラットフォームの実現を目指しています。
コンセプト
- インターフェースがシンプルであること
多機能よりも業務システムにとって最低限必要な機能だけをシンプルに提供することに価値をもつ
- 多機能より見通しのよい単機能を目指すこと
多機能だがソースに手を入れるのが困難なものより機能は少ないがいざとなったら手をいれられるものを目指す
- 動作が軽いこと
フレームワークの実装にあたっては簡易な実装よりもメモリ消費を抑えスピードを重視した実装を行う
- 業務システムのアーキテクチャのコントローラー部分とは独立したフレームワークとすること
フレームワークと共存できること(Web系の場合はStrutsなど)
フレームワークの基本にコントロールをおくのではなくエンティティを中心においている
- 業務システムの設計・開発の生産性向上を念頭に置くこと
シンプルなインターフェースを目指すために想定する設計手法を前提におく
エンティティに対するアプローチ
GettingStartの説明やその中で使われているコード生成ツールを使うとHaricotはDBアクセスのためのフレームワークのように見えますが、あくまでもエンティティを中心としたフレームワークになります。
その目指したところは、分析段階で洗い出したエンティティクラスの責務を極力実装クラスにおいて実現することです。
そのやり方として分析モデルとして作成したものをそのままデータベースにマッピングするのではなく、その分析モデルからデータベース設計を行います。そしてそのテーブルに対応するEntityクラスで構成されたものをドメインモデルと考えます。
ドメインモデルに必要な機能を実現しているのがコアライブラリであり、ドメインモデルのためのデータベース操作をDBアクセスライブラリが担っています。そしてそのドメインモデル用のクラスを作成するのが、コード生成ツールです。
本格的にHaricotを利用する場合はエンティティクラスに業務ルール用のメソッドを積極的に実装していくことを想定しています。最近の設計の風潮としてエンティティをただのコンテナとして実現する方法が主流になっていますが、それとは逆のアプローチをとっています。






メニュー
