りすと亭テストサーバで、Beta-020をテスト稼働開始しました。
既に明らかにしていますが、ここしばらく、いったいりすと亭に関して何をしていたのかというと、メッセージスレッド機能を作り込んでいました。
その機能の一部が見えるようになってきたので、テスト的に稼働させ始めることにしました。
たとえば、以下のURLの「最近更新されたスレッド」で見ることができます。
https://erika.piedey.co.jp:8088/1ml_main.html?MLID=testml4
このあたりに、これが完全ではないことについて書いておきました。
https://erika.piedey.co.jp:8088/log.html?MLID=testml4&TID=1248&F=0&L=10&R=1
完全ではないから、まだ非公開ということです。
それはさておき、メッセージスレッドの機能は本当に作るのが大変でした。ただ単にメッセージスレッドを扱うプログラムを書くだけなら簡単。しかし、実用上必要な様々な条件を付けていくと大変です。
以下に、実現しなければならない条件を、メモから一部抜粋します。
・スレッドの一覧を管理しなければならない
・スレッドに含まれるメッセージ一覧を管理しなければならない
・メモリを浪費してはならない
・時間を食ってはならない
・最近更新があったスレッド一覧を取得できねばならない
・スレッドに含まれる最近のメッセージを取得できねばならない
・スレッドはoutbox削除に対応して再構成されねばならない
・スレッドは、1次元リストとして管理されるべき
・スレッド情報は、最新メッセージがoutbox削除されるまで維持されるべき
・スレッドは編集可能でなければならない
・編集可能とはメッセージの参照情報を後から書き換え可能であるということ
・編集は迅速に終了しなければならない。全ログ再作成で対処は不可
(以下略)
これに耐えうるデータ構造を考えるだけでも一苦労でした。更に、それを実現するのも大変でした。複雑に絡み合ったデータを、整合性を壊さないで更新しなければなりません。
とはいえ、これで完全に終わりというわけではなく、まだまだやることは山ほどあります。ですが、峠は越えた、という感じがしました。誰から見ても、目の前で動いてくれれば、精神的には充足感があります。ソースが単体テストをパスするだけでは、十分ではありませんね。