-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
リザルト画像の永続化の必要性について #2
Comments
ありがとうございます
画像未登録パターンはUNREGISTEREDみたいな状態を増やして、画像が追加登録されたら通知を投げてPENDINGにするとかで対応できる気がします。
保存容量はまあ無視出来そうなくらいなんですね、でも画像のURLの複雑化だいぶ面倒臭さ感じますね… |
これは確かにー状態遷移が煩雑にならないようには意識したい。 未登録はそうね、結構エッジケースっぽいし無視でもよさそう。 画像容量は上限サイズ決めてでかいのはリサイズして保存するとかやってたはず。 |
これは自分も強く思うので気をつけたいですね。 画像周りごっそりなくなれば、フロントはFirebase/バックエンドは単一VPSでAPI+RDS、とかで見通しも良くなりますし良いと思います。 |
Pending -> Approved は承認権者の承認 という感じで、この3状態の状態遷移はほぼ完全グラフを構成しているのは理解しています。 で、Unregisteredを追加した場合はたしかに状態が増えるのは間違いないですが、UnregisteredからApproved/Rejectedへの遷移ルートはないので、状態遷移の複雑性はそこまで問題ないかなと思ってます。 |
いや、
からそれが読み取れなかっただけでした 🙏 ちゃんと考えると結構複雑だけど考慮できてるんだろうかと。 |
Rejected -> Unregistered は無い気がするんですけどどうなんでしょう…? |
あ、入力スコアの修正があるか…… |
画像が合ってるけど数値を誤って登録したスコア修正したくないですか? > Rejected -> Unregistered |
2通りの解決法?が思いついてて、
とかで出来るかな~って感じです |
ちなみに、(ちゃんと考慮できてないけど) 「提出」と「登録済みスコア」を別テーブルとして考える方法もありかも、って気がしている。
みたいな。 |
そういえば、今のシステムで承認済みスコアがある状態で再提出すると、ランキングの表示ってどうなるんだっけ? |
今は承認ステータスは特に無いです。 |
いやむしろ「登録済みスコア」をランキングに表示する必要がもしかしてないのか……? |
状態遷移の難しさのしわ寄せをコードで吸収するかDBで吸収するかの違いな気がしてます。これ実装する時の状況に応じて考えるべきだったりする気がしてきました…(実装の設計が好きすぎてずっとこの話してしまう気がする) リザルト画像を永続化する・しないの判断にあたって、とりあえず一番の問題は「永続化しないとできないこと」を洗い出すことで、とりあえず自分が思いついたとこだと
というあたりが課題になるかなぁと思います。
その他自分が見逃してる課題があればそれも検討した上で、画像の永続化をするかしないか決めて、実装の話は別のIssueに移動したほうがいいかな、と思ったんですがいかがでしょう? |
URL難読化してた部分、Firebase Authenticationと連携させて権限つけるみたいなこと出来はするみたいですけど案外面倒なんですかね? |
たしかに、だいぶ実装の話にとらわれてしまった。
|
firebase側で権限管理させるようにすればそこまで大変じゃない雰囲気ありますね。
再利用というか、画像を正としたスコアのみの修正ですよね。
提出したら消してしまう人がいる可能性については考慮しなくても大丈夫そうでしょうか
をするのであれば、submissionテーブルに画像パスを保存するのと本質的に変わらない(ストレージコストの問題はありますが十分無視できるほど小さい) |
僕もちょっとここが不安ですね(あんま調べてない) |
#1
#1 (comment)
あたりから話が膨らんできたのでissue切った
The text was updated successfully, but these errors were encountered: