« Persica V0.30 公開 | Main | Persica V0.40 公開 »

2005.01.14

Persica 改良案

Persica の今後の機能追加についてつらつらと考えてみた。

0.30 に至ってなお面倒に感じるのは、Recent プラグイン使用ファイル(以下 Recent ファイル)の扱いである。このファイルは、Recent プラグインの機能と目的を考えれば、他に変更されたファイルがある限り、それ自体に変更が加えられていなくても毎回必ず変換しなくてはならない。

しかしながら現時点では、変更されていないファイルを変換するためには -f オプションを指定する必要があり、そうなると全てのファイルが変換されるので、ファイル数が多い状態で特定のファイルに細かい変更を何度も加えることになると、数秒のわずかな待ち時間であっても結構なストレスになるのだ。特に Amazon プラグイン使用ファイルの変換に掛かる時間が馬鹿に出来ない。

当初は最後の最後に -f 指定で実行すればいいと気楽に考えていたのだが、意外に -f 指定実行後に誤字や誤記に気付く(しかもそれを繰り返す)頻度が高いことが判明した。まあ、単におれがそそっかしいだけと言えばそうなのだが、考えてみれば -f オプションは本来スキンファイルに変更が加えられた場合への対応が目的であって、Recent ファイルの面倒を見るには挙動が大袈裟に過ぎる。

では今求められている機能は何か。突き詰めて考えれば、「-f オプションの有無に関わらず毎回必ず変換されるファイル」という概念の導入である。もう少し練りこむと、更に「他に変更の加えられたファイルがあれば」という条件を追加したくなるのだが、そこまで窮屈にしなくても実行時のストレスを軽減する効果は得られると思う。

実装レベルで考えると、変換元のテキストファイル内に常時変換を意味する何らかの記号を記述しても意味がない。変換対象ではないファイルはそもそも内容を走査しないからだ。ここはもちろん $source_dir/.status に書くべきだろう。このファイルには $source_dir 配下の全てのファイル名が記述されている。そして Persica は Recent プラグインに渡す情報を取得するために、起動後まず真っ先にこのファイルを読み込む。これ以上の適任はあるまい。

$source_dir/.status には現在、変換元ファイルの (1) $source_dir からの相対パス、(2) 更新日、(3) MD5値 が記述されている。この末尾に変換種別を示す記号を追加すれば良い。

しかしユーザが $source_dir/.status を直接編集するのは面白くない。個人的なこだわりではあるが、キカイが書いてキカイが読むものに人間が手を加える必要性も権限も認めたくはない。

となると変換種別を人間はどうやって指定するのか。上で「意味がない」と書いたものの、結局のところ、そのファイル自身に記述するしかなさそうである。それが一番簡単で確実なのだ。どんなファイルでも作成時と内容の変更時は絶対に変換される。その際に $source_dir/.status に記録してしまえば何も問題はない。タイトル行の先頭文字で判断するのが分かりやすくて良いだろう。無関係の文字であれば指定なしと判断するわけだ。

最大の難関はその記号を何にするか。おれはネーミングもそうだが、その辺のセンスがまったく欠如しているのだ。

……とりあえず「!」にしとくか。

|

« Persica V0.30 公開 | Main | Persica V0.40 公開 »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference Persica 改良案:

« Persica V0.30 公開 | Main | Persica V0.40 公開 »