非常に厳密な形式のコード化を使用しているため、構造体を変更するたびにブックマークがリセットされます。
展示物A: https :
これをもう少し柔軟に変更できる方法はありますか。そうしないと、これが公開されると、キャッシュを破棄せずに機能を基本的に変更できないという問題が発生します。
私はcodableをあまり使っていないので不可能かもしれないことを念頭に置いて考えていますが、codableから独自のinitを作成すると、新しい値はオプションのデフォルト値として扱われる可能性がありますか? (ただし、これも問題を引き起こします。たとえば、上記のように-デフォルトのブランチ=間違っている=コードビューが間違っているので😕)
@rizwankceに何かアイデアがありませんか?
新しいパラメータを追加しただけではありません。 NSMutableOrderedSet
を使用するようにストアを変更したため、リセットが発生しました。
これは、DB /移行の処理と同じ問題を引き起こしています。 🤦♂️
GitHawkで送信
codableが構造の変更を処理できないのを待ちますか? では、新しいプロパティを追加すると、逆シリアル化に失敗しますか?
その場合は、 NSCoding
フォールバックすることもできます。
GitHawkで送信
正確に言えば、アップグレードすると、コンソールにこのオブジェクトが何であるかわからないというエラーが表示され、失敗します(したがってリセットされます)
NSCoding
がそれをうまく処理するなら、ええ、変更する価値があるかもしれません😞
したがって、上記で提案したように、Codableを使用してこれを行うことは可能ですが、問題は、使用できるデフォルト値がなく、バグがないことです。 「エッジケース」について議論できることは確かですが、実際には、リクエストを実行してブックマークを新しい情報で更新できる移行システムが必要です🤔
@SherloukSparkの「データベースのアップグレード」スプラッシュのようなものが思い浮かびます
GitHawkで送信
ブックマークという意味では、非常に真実です。 課題/検索などはすべてリポジトリの最新の参照であるため、それらの情報は正しいものになります。
ブックマークと最近の検索では、入力する前に、所有者/名前だけからリポジトリをロードして、他の情報を取得する方法が必要です。
そうすれば、レポのスター数と問題のラベルを表示し始めることができます。 シンプルに保ち、Thingを入力したときにのみ更新できます(同期サービスと比較して)。
ちなみに、1つのgqlリクエストで複数のリポジトリをクエリすることはできませんか? それで、名前による4つのリポジトリの1つのリクエストのように?
GitHawkで送信
私の知る限りでは、1:1だと思います。 スター、ラベル、コミット情報🤔🤔
GitHawkで送信
ここで何をすべきかについての考え? 今週1.12を提出したいと思います。 私はこのATMについてそれほど心配していません、ただ移行計画について考える必要があるでしょう。
長期的には更新メカニズムが必要なように思えますが、追加するのはそれほど難しくありません。
たぶん、ブックマークを少しリファクタリングして、識別子に基づいてO(1)ルックアップを実行し、オブジェクトを更新できるようにする必要がありますか?
私は個人的に、これを計画せずにブックマークをリリースすることをかなり心配しています。まるでそれを処理しないかのように、ユーザーのブックマークをクリアし続けるつもりでした!
GitHawkで送信
ブックマークを消去するバージョンを出荷することは決してありません。私はそれを受け入れません。 ブックマークを破壊するような変更には、手動であっても移行を含める必要があります。
GitHawkで送信
私たちは今これを管理していると思うので、これを閉じます。 新しいリリースごとにこれを確実にチェックする必要があります-またはそれを自動化する方法を見つける必要があります。
最も参考になるコメント
ブックマークを消去するバージョンを出荷することは決してありません。私はそれを受け入れません。 ブックマークを破壊するような変更には、手動であっても移行を含める必要があります。
GitHawkで送信