Kenichi Maehashi's Blog

脳内コアダンプ

RSS
Category: Computer
今回は技術的なお話を。久々の長文シリーズ。

最近良く思うのだが、たとえ自分一人で作成したものであっても、一つのプログラムを長くメンテナンスしていくというのは大変なことだと思う。そのプログラムが、プログラミング技術の未熟な頃に作られたものなら、なおさらである。

先日、Lyrics Master のコードに、超悲惨なバグを見つけた。本当に偶然の発見で、ユーザからの報告も無かったので、かなり焦った。というか唖然とした。

Lyrics Master は、今となっては知る人も少なくなったであろう、「Utamap Crack X」(UCX)というプログラムを継承している。2004年に最初のバージョンが書かれた UCX だが、実は現在の Lyrics Master のコードの一部に、UCX 時代のものが含まれているのである(※脚注)。先のバグは、まさにUCX の時から使われていたコードのものだった。

2004年から2006年までの間に、自分のプログラミング技術はかなり向上したと思う(ただし、あくまで『当社比』だが)。自分なりだが、コーディングルールやコメントの入れ方も若干変わっている。そのために、今の自分では絶対に考えられないような実装や記述を行っている部分が多々あり、それが後々(機能の拡張や仕様の変更等によって)バグとして顕在化してくるのである。

という訳で、Lyrics Master をリライトしたいな、と思ってみたりする。この機能は関数化して、あの変数はグローバル化して、増えすぎた設定ウィンドウはタブにして・・・など、やりたいことは山程ある。Lyrics Master 以外でも、作ってみたいプログラムのアイディアは、実はたくさん眠っている。

・・・結局、無いのは時間だけだ。


※脚注:UCX は、2004年12月に初版(バージョン0.1β)作成。バージョン1.0以降は「扱える歌詞サイトが増えた」「ネーミングから違法ソフトウェアに見える」等の理由により Lyrics Master に名称変更したので、その時点ではまるごとソースコードを引き継いだ、というのが正しいかも。内部的には、オブジェクト名とか、変数名とか、現在でも UCX の名残も多かったりする(例えば、うたまっぷ以外の歌詞サイトのデータが格納される変数なのに名前に「utamap」を冠していたり)。これゆえ、機能の拡張がしづらい&自分でも分かりにくい状態が発生している。

※ちなみに、海外に「Lyrics Master」という Windows Media Player 用のプラグインがあることは、つい最近になって知った。よく調べなかったことを反省している。

※尚、「Lyrics Master」という名前は、あるバンドのメンバーが作詞者(ボーカル?)に対し敬意を込めて「リリックマスター」と呼んでいるのを聞いて、何となく気に入ったので使わせて頂いたものである。

Comments

Leave Yours...
Name:
E-mail / URL (optional):
Comment:
Are You Robot?: