make_update_listを速くする

なんとなく、コーディングのネタとそれ以外のネタを交互に書いていくことに今決めた。 次回のコーディングのネタは既に確保済みだが、ごく普通に考えるとやはりコーディングネタの方が先に尽きそうだ。 その時はその時考えよう。コーディングと言う内DNAネタに走ってみたりして…。

夜中にアイスを食べながら、なにを考えるかといえば、見聞伝トップ下部に現在表示されているアレ、何とか高速化できないものだろうか。 どう考えても、アクセスする度にあのリスト全体を生成しているのがいけないのだが、それを避けるにはやはり実行結果をどこかに保存しておくというのが順当な手段だろう。

さてどんな時にリストを生成しなくてはいけないかというと、

  • ブログが更新されたとき
  • 引数が変更されたとき
  • 結果が保存されていないとき
当然ながら、これは頻度の順である。2と3を軽く説明しておくと、このリストを生成する時には、何件表示するかなどのパラメータがいくつか設定できる。当然ながら、この設定が変更された時には、リストを生成し直さなくてはいけない。また、今回更新した直後には当然過去のリストは保存されていないから、生成して保存しなくてはいけない。 他にも、保存した結果を消去すればリストが再生成されるようにしておくと、後々便利そうである。 この条件分岐はそのまま書くと結構スパゲッティーになるので、由緒正しきフラグを使って分岐を書くことにする。

蛇足ながら説明しておくと、スパゲッティーコードとは、スパゲッティーの如くごちゃごちゃと絡まりあっていて、どの部分が何を制御しているのか分かり難く、見通しの悪いコードのことである。間違いの元になるため敬遠される。逆に、そういうコードを意図的に書いて楽しむ(?)、IOCCCなるコンテストも存在している。ニコニコ動画でしばしば見られる、「技術の無駄遣い」を地で行くようなコンテストである。

さらにもう一本足を生やしておくと、フラグというと「死亡フラグ」なんて言葉が有名になってしまっている気がするが、技術屋さんにありがち(?)な伸ばし棒や促音を略して書いているもので、ごく一般的なカタカナ表記をするなら、フラッグである。つまり旗。 条件分岐に使う条件が成立しているかどうかの目印ってだけなんですよー。別にアドベンチャーゲームに出てくるだけじゃないんだぞー。

これ以上足を生やすと蛇が百足になりそうなので、今夜はこの辺で。来週までに改造を完了したいなぁ。

Tags: , ,

Leave a Reply

Powered by WP Hashcash