• Showing Page History #40271

Rept

Reptとは

Reptはファイルやディレクトリの作成、すでに存在しているファイルへの挿入を自動化するためのツールです。

プログラムを書いている人ならこのような状況に遭遇したことはないでしょうか?

  1. 新しくクラス(や関数)を追加しよう。ええとまず定義ファイルを新規に作って、次にひとまず実装を空で追加して、そうそうmakefileにもコンパイル対象を増やしたことを通知しなきゃ。しかし同じことを何回もやってるなあ。
  2. あの画面で使う文章データをプログラムに追加しよう。何個位足せばいいんだ?ええと20個か‥‥。それじゃデータの定義ファイルにシンボルを20個足して、空データを20個追加して(コメントは適当に入れちゃえ!)、え?4番と8番は初期設定を変えといてくれって?やれやれ。

プログラムを書き始めて段々規模が大きくなっていき、基本的なフレームワークが落ち着いてくると、いくつかの作業を行う時に、特定のルールに沿った(人間には直感的に分かる)繰り返しパターンが生まれていきます。

これを各自が繰り返すのは余りに効率が悪いということはみんな気がついていて、様々な試みがされて来ました。例えばIDEに機能として付属しているソースコードウィザードだったり、各自が様々な方法でコードジェネレータを作ってみたり。

出来た後はとても効率が上がるのですが一つ問題がありました。それは「作るのが大変」ということです。仕事の合間に、「あ、これ繰り返しパターンかも」と気が付いても片手間にサクッと作れるレベルでは(少なくとも私にとっては)無いです。そうして生まれたら開発効率が上がるはずだった名も無きコードジェネレータがいくつも消えていきました。

Reptは、手でバリバリコードを書くパワーコーディングと、作るのは大変だけど完成すれば便利なソースコードウィザードの丁度中間に位置するツールです。メリットを書くと、

  1. 作り方は、簡単なルールに沿って、reptファイルというテキストを書くだけ。 CUIやGUIの入力インターフェースを作ったり、不適切な入力に対するエラー処理等はReptがやります
  2. Reptの出来ることはこんな感じ
    1. 新規ファイルの追加
    2. 新規ディレクトリの追加
    3. 既存ファイルへの途中挿入
    4. ユーザーからの入力を利用して生成するコードを動的にする
    5. 生成したコードを元に戻す(undo)
  3. 元々テキストで作られているものなので保守もすごく簡単! (コードジェネレータの保守って思ったよりも面倒ですよね?)

あなたのプログラミングの時間から、少しでも機械的な作業が減りますように!