TeraOmegaNetwork 2.0
<2010年9月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

macでVS2010
iPadでVS2010
ミニノートPCでVS2010
C# 3.0 LINQ Sort
ぱられる。ふぉー
Parallel.For
C#4.0 続2 Parallelクラス
C#4.0 続 Parallelクラス
Internet Explorer の検索ボックスを表示しない
2010年度になりました

プログラミング
・C#
・C/C++
・Java
・Visual Basic
・Visual Basic .NET
・色々な言語
・メモ
管理人の落書き
リンク
テンプレート作成支援言語
IEAuto
クラス設計






Web デベロッパー

必要科目
70-536
70-528
70-547



・Sun認定Javaプログラマー(SJC-P 035)
・OracleSilverFaeroe 9i
・UMTP Lv1
・基本情報技術者


・セキュリティスペシャリスト合格
・テンプレート作成支援言語(T言語)を広める事

  お勧め1「テンプレート作成支援言語(T言語)」ver 1.1.1         20010/02/26 更新
テンプレート作成支援言語について
ダウンロードする。

お勧め2「ブラウザ自動操作ツール(IEAuto2009)」ver 1.6.1    20010/03/25 更新
ブラウザ自動操作ツール(IEAuto 2009)について
ダウンロードする。

お勧め3
「データベース更新前更新後比較ツール(DBCMP) Oracle接続可」ver 1.4.0  20010/03/14 新規公開
ダウンロードする。

テンプレート作成支援言語 - --------------
ちょっとした事から自動生成

ソースの自動生成と言うと、設計書(定義ファイルも含む)と自動生成ツールを
使って、ある程度のの決まりきった処理を自動で出力してくれる。
ただ、そういうツールでは、細かい所までは、自動生成してくれない。

例えば・・・

画面に入力項目が10個ありました。
そして、その画面はDBから取得した値をデフォルト値とします。(更新モード)
それらの項目は、1つでも変更を行っていないと
DBへ更新を行ってはいけません。
なお、この考えは、他の画面でも同様とします。

ここで、変更前と変更後の2つの値の比較について考えてみる。
プログラムは以下のようになる。

if(変更前項目1.equals(変更後項目1)) { return false; }
if(変更前項目2.equals(変更後項目2)) { return false; }
if(変更前項目3.equals(変更後項目3)) { return false; }
if(変更前項目4.equals(変更後項目4)) { return false; }
if(変更前項目5.equals(変更後項目5)) { return false; }
                 以下略(面倒くさくなりましたw)

このように同じような事が何度も出てくる。
面倒ですね。しかも似たような項目があった場合など、タイプミスする場合も考えられますね。
タイプミスを踏まえ、ソースのチェックもしないといけないです。

そこで、こういうちょっとしたプログラムからでも自動生成できないか考える。

・項目は10個ある。
・if(変更前★値★.equals(変更後★値★)) { return false; }
   ★値★の箇所以外全部ロジックは同じ


テンプレート作成支援言語(T言語)の出番です。

本来ですと項目定義ファイルと、テンプレートファイルの2つのファイルを
用意するが、1つにまとめてでもできるので1つにまとめる。


〇ファイル名:比較テンプレート.txt (値入り(1行目〜11行目))
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
項目名称
項目1
項目2
項目3
項目4
項目5
項目6
項目7
項目8
項目9
項目10

if(変更前%項目名称%.equals(変更後%項目名称%)) { return false; }




〇実行結果:比較テンプレート(値(1行目〜11行目)も出力されている気にしない)
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
項目名称
項目1
項目2
項目3
項目4
項目5
項目6
項目7
項目8
項目9
項目10

if(変更前項目1.equals(変更後項目1)) { return false; }
if(変更前項目2.equals(変更後項目2)) { return false; }
if(変更前項目3.equals(変更後項目3)) { return false; }
if(変更前項目4.equals(変更後項目4)) { return false; }
if(変更前項目5.equals(変更後項目5)) { return false; }
if(変更前項目6.equals(変更後項目6)) { return false; }
if(変更前項目7.equals(変更後項目7)) { return false; }
if(変更前項目8.equals(変更後項目8)) { return false; }
if(変更前項目9.equals(変更後項目9)) { return false; }
if(変更前項目10.equals(変更後項目10)) { return false; }


単純な置き換え処理だが、これも自動生成と言える。
今回のような自動生成だと、テンプレートに定義したロジックと
実際出力するロジックが、ほぼ同じだと言う事も特徴。
これをもっと発展させていくとゲッター、セッター(Bean、VOクラス)を
テンプレートから起こせたり、DBアクセス層を作ったりと、さまざまな
ロジックを自動生成できる。


・検索キーワード:  テンプレート作成支援言語, Java

戻る  マイリストへ追加