ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

2007年~2011年ごろまで はてなダイアリー に書いてた記事を引っ越してきました。

う〜〜〜、ようやく、ソートIndexが終わった・・・。

ようやくCUD系を実装し終わった。ソートIndexの特性上、append(), delete(), exist() だけで事足りた。基本的に、レコードの更新という処理が無いので。追記するか、削除するかだけ。created_atのソートは本当にそれだけで終わる。また、updated_atの場合はdelete()した後にappend()するなどの感じになる。あと、結局ソートのキーとなる値はUNIX時間にしておいた。親クラスに実装してしまったということもあるので、まぁ、別に文字による時刻表現でなくとも構わないよなぁ、という感じ。
というよりは、タイムゾーンの表現に苦慮したからだ。
今のところ"+0900"・・・つまりタイムゾーン付きの表記で、データ群には時刻を記録している。これをそのままソートIndexに持って行ってしまうと、タイムゾーンが異なるデータが混じってきた時にソート処理がやばくなるんだよね。
いや、今からそんなこと考えてもしょうないだろうと言えばそうなんだけど・・・。

ただ、逆にUNIX時間(恐らくGMT)の整数表記にしてしまえば、Transaction Layerの中で適当に変換してしまえば、タイムゾーン表記によるソートIndexのソート比較に悩む事は無くなる。問題自体が消える。
というわけ。
長かった・・・。間に結構時間挟んだので、数日?がかりか。あとは"名前"検索Indexと、最大の難関?のACLインデックス・・・。
今週中に終わらせられればベストだけれど、ACLインデックスはそうも行かないかもなぁ・・・。

結局、11/15辺りから本格的にコーディングが始まり、およそ3週間かかる格好になる。日付で言えば。実働で言えば、はてダの日付を根拠にすれば恐らくちょうど今日で12,3日位になるか。設計書とかは無いし、フレームもゼロベース、テストケースの書き方も体当たり状態で一人。うーん・・・こんなものかなぁ・・・。今週いっぱいで終われば、ちょうど実働が15日間、休み入れて3週間。

やっぱり一人というのがきついなぁ・・・。TDDに詳しい人を一人入れて、ペアプログラミングか片方がDAO/INDEX、片方が画面モックアップを作るという風に分担していればもうちょい短縮できたかも・・・。

まぁ、言うまい。これが自分の実力と言うことだろう。さて。残りのインデックスを片づけるか。

あ、あと、C2D(N:N)はそのまま放置。というのも、まだN:Nのバリエーションはこの一つしかない為、これをそのまま親に抽出してしまって良いモノかどうか判断付かないから。どうようの理由で、名前検索Indexも特に親クラスの抽出は行わない。ACLも同じ。

あと、バージョン情報に、コメント付けたいなぁ・・・。