ツールのリファクタリング
[2024/06/11]
うちのサイトにはいくつかの音ゲーツールが公開されています。
リファクタリング
いろいろなツールを作っていますが作った時期もばらばらで、作った後にもっと楽に実装できる方法を知ることはよくあります。
また、ツールも作りながら「こうした方がよくね?」とか作った後に「ここが使いづらいなぁ」と感じることはよくあり、そういうのを"付けたし"しているのでコードが汚くなる。
一度作ったものを修正(バージョンアップ)するというのはよくある話ですが、あまりにも直すのに手間がかかるときは「作り直す」ことがあります。
プログラミングの用語では「リファクタリング」っていうらしいです。そういう用語があるくらいなので一般的なことなんですかね。
beatmaniaIIDX ノーツレーダー値のリファクタリング
今回作り直したのは「beatmaniaIIDX ノーツレーダー値」です。IIDXのノーツレーダーの値が一覧で見ることができるツール(そのまま)。
前回作ったときは割とやっつけだったので、表示に使っているデータは元にしたデータ構造をほぼそのまま使っていました。
そのため、例えばVerflucht(L)、Verflucht(A)、Verflucht(H)、Verflucht(N)のように同じ曲も譜面ごとにデータを保存していて、共通する曲名なんかも譜面数分保存されていました。さらにそれがNOTES、CHORD…と6回保存されていたので、1回で済む内容が24回保存されていた訳ですね。
VerfluchtくらいならまだしもASIAN VIRTUAL REALITIES (MELTING TOGETHER IN DAZZLING DARKNESS)みたいに曲名が長いものを何度も保存しているとファイルサイズが大きくなってしまう。
ぶっちゃけ今の通信速度であればそんなバイト単位で節約なんてあまり気にする必要もないと思いますが、性格的に気になってしまうので直しました。
これで読み込むファイルがSP/DP合わせて710KB→387KBになりました。
JavaScriptのコードも210行くらいあったものが、150行くらいになりコードも読みやすくなりました。
ただやってることはほぼ変わらないので処理速度に関してはあんまり変わってないと思う。気持ち早くなったかな?くらい。
さいごに

ぶっちゃけ使う側からすると全く関係ない話。なんなら新たなバグが生まれる可能性もある作り直し(リファクタリング)です。
自分の場合って似たようなツールを作ることが多いので、前に作ったツールのコードをコピペすることが多いんです。コードを奇麗にしておくとコピーしやすいw