お小遣い帳 v2.0.2.8(再)

■v2.0.2.8(2012/12/29)
[[修正]]
・WEB版β30においてのID仕様ならびに通信仕様変更に対応
・クライアントのDBをWEB版の仕様にあわせた
・過去バージョンのテーブル変換ウィザード処理をすべて削除
・エラーコード定義を最新化
・ネットワークエラー時には不明なエラーではなくネットワークエラーと表示するように
・起動時に行が選択された状態なのを修正
・SQLiteのバージョンを更新
・同期ログの上限件数が無かったのである件数で古いものから削除するようにした
・決済方法の編集が出来ないという勘違いが寄せられたので分かるように記述した
・自動挿入のデータを挿入したあとに編集フラグを立てるよう仕様変更
・リファクタリング実施/使っていないコード削除(旧XML処理部分等)
・計算方法をWEB側準拠に統一

ダウンロード
ecalic007_001

21時40分より前にダウンロードした方は再ダウンロードお願いします
(リリースミスがあり、これ以前のバイナリにはバグが残っています)

WEB版お小遣い帳を使ってない人は今回アップデートする必要はありません、
むしろ一切使う予定が無いならしないほうがいいです。
(ただ近々グラフ系処理の改善やWEBで先行実装した資金移動の実装も行います)

WEB版とクライアントを同期して使っている人は必須なアップデートになります。
ただし手順を読まないと大変なことになりますのでご注意ください
手順といってもアップデートボタンを押す前に、近くにあるボタンを押すだけなので読み逃さなければ平気です。

今回のアップデートの原因はWEB版との同期の初期実装の悪さに起因します。

収支データをクライアントとWEBシステムで一意に識別しているIDが存在しているのですが
これをクライアントが送ってきたものをWEBシステム側が採用しているスタイルでした。
いくらID文字列をサニタイズしていようとこの実装は良くないです。

そこで今回はID交換システムを組み入れるために大幅な改造が必要になってしまいました。

WEBシステム側では今まで一意識別IDはグローバルで作成していました(全体から見ても一意であるということ)
これをアカウントに対して一意になるIDを作成するようにしました。さらに今まで桁数が45桁もあったので12桁まで削減(これでも多いが)
ID数値カウンターの無駄遣いをされてもそのIDだけですし、色々都合が良いです。

同期処理はクライアントが送ったデータをWEBシステムが処理したときに作成されるWEBIDを変換結果としてまとめて送り返すようになりました。
これをクライアントが受け取り、WEBIDに書き換えれば紐付けされるので次の同期も万事OKです。
問題はWEBシステム処理は完了したのにクライアントが変換結果を受け取り損ねたときです。再同期するとデータが重複します
これについては色々考え中です。

 

そしてシステム入れ替えにすごい時間を要した理由ですが(28日の夜から29日夜 ほぼ丸一日)
実際のところの作業時間は6時間くらいです。
ユーザデータの変換処理も所詮DBデータ変換なのでトランザクション切れば一瞬で終わります。

28日夜はメンテナンスモードにしてクローズしたら眠くなってすぐ寝て、翌日は昼起きて黄金伝説の録画見つつ作業を始め……
要するにダラダラやったせいでした。

コメントを残す

メールアドレスが公開されることはありません。