Githawk: ブックマークのリセット(再度)

作成日 2017年11月05日  ·  14コメント  ·  ソース: GitHawkApp/GitHawk

非常に厳密な形式のコード化を使用しているため、構造体を変更するたびにブックマークがリセットされます。

展示物A: https

これをもう少し柔軟に変更できる方法はありますか。そうしないと、これが公開されると、キャッシュを破棄せずに機能を基本的に変更できないという問題が発生します。

私はcodableをあまり使っていないので不可能かもしれないことを念頭に置いて考えていますが、codableから独自のinitを作成すると、新しい値はオプションのデフォルト値として扱われる可能性がありますか? (ただし、これも問題を引き起こします。たとえば、上記のように-デフォルトのブランチ=間違っている=コードビューが間違っているので😕)

@rizwankceに何かアイデアがありませんか?

🐛 bug

最も参考になるコメント

ブックマークを消去するバージョンを出荷することは決してありません。私はそれを受け入れません。 ブックマークを破壊するような変更には、手動であっても移行を含める必要があります。

GitHawkで送信

全てのコメント14件

新しいパラメータを追加しただけではありません。 NSMutableOrderedSetを使用するようにストアを変更したため、リセットが発生しました。

これは、DB /移行の処理と同じ問題を引き起こしています。 🤦‍♂️

GitHawkで送信

codableが構造の変更を処理できないのを待ちますか? では、新しいプロパティを追加すると、逆シリアル化に失敗しますか?

その場合は、 NSCodingフォールバックすることもできます。

GitHawkで送信

正確に言えば、アップグレードすると、コンソールにこのオブジェクトが何であるかわからないというエラーが表示され、失敗します(したがってリセットされます)

NSCodingがそれをうまく処理するなら、ええ、変更する価値があるかもしれません😞

NSCodingを使用すると、完全に制御でき、新しい値をオプションにするか、initWithCodingにデフォルトを指定できます。

これは1.12より前に変更する必要があります

GitHawkで送信

したがって、上記で提案したように、Codableを使用してこれを行うことは可能ですが、問題は、使用できるデフォルト値がなく、バグがないことです。 「エッジケース」について議論できることは確かですが、実際には、リクエストを実行してブックマークを新しい情報で更新できる移行システムが必要です🤔

@SherloukSparkの「データベースのアップグレード」スプラッシュのようなものが思い浮かびます

GitHawkで送信

その意味で、すでにバグがあります。 リポジトリがデフォルトのブランチを変更するとどうなりますか?

訪問したときにアイテムを更新するシステムが必要なようです。

GitHawkで送信

ブックマークという意味では、非常に真実です。 課題/検索などはすべてリポジトリの最新の参照であるため、それらの情報は正しいものになります。

ブックマークと最近の検索では、入力する前に、所有者/名前だけからリポジトリをロードして、他の情報を取得する方法が必要です。

そうすれば、レポのスター数と問題のラベルを表示し始めることができます。 シンプルに保ち、Thingを入力したときにのみ更新できます(同期サービスと比較して)。

ちなみに、1つのgqlリクエストで複数のリポジトリをクエリすることはできませんか? それで、名前による4つのリポジトリの1つのリクエストのように?

GitHawkで送信

私の知る限りでは、1:1だと思います。 スター、ラベル、コミット情報🤔🤔

GitHawkで送信

ここで何をすべきかについての考え? 今週1.12を提出したいと思います。 私はこのATMについてそれほど心配していません、ただ移行計画について考える必要があるでしょう。

長期的には更新メカニズムが必要なように思えますが、追加するのはそれほど難しくありません。

たぶん、ブックマークを少しリファクタリングして、識別子に基づいてO(1)ルックアップを実行し、オブジェクトを更新できるようにする必要がありますか?

私は個人的に、これを計画せずにブックマークをリリースすることをかなり心配しています。まるでそれを処理しないかのように、ユーザーのブックマークをクリアし続けるつもりでした!

GitHawkで送信

ブックマークを消去するバージョンを出荷することは決してありません。私はそれを受け入れません。 ブックマークを破壊するような変更には、手動であっても移行を含める必要があります。

GitHawkで送信

私たちは今これを管理していると思うので、これを閉じます。 新しいリリースごとにこれを確実にチェックする必要があります-またはそれを自動化する方法を見つける必要があります。

このページは役に立ちましたか?
0 / 5 - 0 評価