実装ミスで一部データが消えた! – 開発日記(53)

2023/09/15

描画の高速化のために、スクロール範囲から見えないアイディアの描画を省略するようにした。後にこの修正が大きな問題を起こすのですが……この時点では知る由もなし)

アイディアが多いときに処理が重くなっていたのは改善された。しかし描画しないとそのIdeaのStateが存在しなくなってしまい、フォーカスなどの処理に支障が出てくることが分かった。

処理のたびにいちいちアイディアが画面上にあるか(Stateが存在するか)の判断が必要になり、またもや全体的に複雑になってしまった……。

修正箇所が大量に発生。

2023/09/16

描画の高速化関連の修正を引き続き行う。IdeaのStateが存在しなくなってしまい、フォーカスなどの処理がかなりおかしくなっていたので多数修正。また ヘッダーなどの keyの扱いを一部変更した。

休日なのに不具合と半日以上戦い続けた気がする。

2023/9/17

特定のCanvasでデータ消失が発生!

これはまずい……。
調べると先日のパフォーマンス改善によって処理を変えたことにより生まれた問題に起因するものだった。

もともと各アイディアWidgetのStateにいろいろな情報を格納していたのだが、パフォーマンス改善で画面に表示されないアイディアを非表示にしたことで、Stateがきちんと生成されないアイディアが存在するようになった。Stateが存在しないことに気づかず情報にアクセスしようとしてデータがNullになり、テキストが空欄でDBに保存されてしまったようだ。Stateとデータ(テキスト)の分離を正しくしないとダメだ。

まさかのデータ消失。空欄の部分に「対応すべきこと」を書いていたのが消えてしまった……

既にWebにデプロイしているので誰でもアクセス出来る状態にはなっているが、URLを知っているのは自分だけ。つまり使っているのも自分だけ。それにまだ機能も少ないからアイディアレーンに書いていたアイディアもそれほど多くない。

データが消失しても困ったことは少しだったが、これがもし将来的に他の人も使える状態で起こったとしたら大変だ。

まず原因を正しく理解し不具合を修正して二度と起きなくすることが先決。そしてデータのバックアップも、調べたり考えるべきフェーズになったことを実感した。

2023/09/18

※ちなみに投稿して1年以上経った2024/10/11現在も、Flutter側で解決せずOpenのままIssueとして挙がっています……


※開発日記は当時の記録をもとに作成し、必要に応じて加筆・補足しています

この記事はアイディア整理ソフト「idea Lane」の開発記録です

どなたでも、ユーザ登録だけで無料ですぐに使えます
テキストベースの思考整理ツール「idea Lane」


コメント

タイトルとURLをコピーしました