2015年7月19日日曜日

[システム開発]メタデータとコーディング自動化

 メタデータを使ったシステム開発のメリットについては、前述した通りである。中でも着目すべき特徴は、コーディング自動化である。永続化データ(データベースの構造)を決めてしまえば、プログラムで単純なselect、insert、deleteを実行するコードまでは自動生成できるので、大幅な工数削減効果が期待できる。
 また、どうしても人間が記述しなければならない箇所は「カスタムコード」として実装し、後からテンプレート化すれば、二回目以降は自動生成できるようになる。
 クラスの構造で説明すると、まず自動生成で作ることができるクラスを派生させてカスタムクラスを作り、そのカスタムクラスのテンプレートは個別に作成していく、ということになる。たとえば「ユーザ」というデータベーステーブルにアクセスするための「ユーザDAO」というクラスがあった場合、次のようなクラス構成となる。

UserDao

└UserDaoCustom

 UserDaoは基本的な自動生成を行い、カスタムコードのテンプレート化はUserDaoCustomクラスで行う。こうすることによって、汎用的な自動生成コードを改変することなく、人間が手書きしたロジックを新たにテンプレート化して自動生成できるように変えることが可能である。
 人間が手書きしたコードは、人間が動作検証のためのテストプログラム(JUnitなど)を記述しなければならず、検証そのものも人間が行わなければならない。しかし1回でも完全な確認が取れたコードをテンプレート化しておけば、以降はメンテナンスフリーにすることができる。普段はJUnitの回帰テストを1日1回なり、1時間に1回なり動かしておき、万一問題が発生したら新しいサービスに差し替えるか、軽微な変更であれば手書きで修正する。
 なぜ人間が手書きしたコードを自動生成できるようテンプレート化するのかについては、次に記事として記載する設計自動化の項を参照のこと。

0 件のコメント:

コメントを投稿