検索機能の実装を考える
1. モックを作る
mswで、REST APIに対するリクエストをインターセプトして、モックデータを取得する
2. 検索処理を作る
Enterを押した際に検索が発生するようにするのか?
入力のたびに検索が発生するようにするのか?
とりあえずこっちで考えたい
REST API
本当にREST APIで良いのか?
マップの情報をリアルタイムに書き換えたい。ならば、
とりあえず、すべての情報をリアルタイムに受信したほうが良い
必ずしもそうではないかな
「発見」機能の仕様を考えたい
場所的に離れている場合、リアルタイム受信が不要になる
別館など
今いる場所から離れているときは受信せず、その場所のページを開いたタイミングでまとめて受信 & リアルタイム受信開始する
通信の発生量を考える
一般的な有名大学の通信規模
最大同時接続数
ピーク参加者数の80%とする
いや、いや
通信の発生量は考えない
リアルタイムな通信はそこまでリアルタイムでなくて良い
1分ごとでも何ら問題ない
負荷に応じてもっと増やしても問題ない
製品の性質に応じて考えるべきだ
そもそもリアルタイムな通信を知らない自分は。。
gRPCに入門しよう。それが前提だ
gRPCを見た記録
gRPCとリアルタイムな通信は、関係こそあるが、そのものではない。
gRPCで重要なのは、共通のprotoを定義して、各環境でprotoLoaderを使って読み込み、プロシージャを呼び出すということ
まったく無関係ではないけど、BSDソケットの近くにあるような概念ではない
リアルタイムが必要なところと、不要なところ
不要
検索
マップの店舗情報
店舗情報API
検索APIで店舗の位置とIDを取得して、
タップされたらIDを元に店舗情報APIに問い合わせる
1分ごとにキャッシュすればリアルタイム性も問題なし
SWRでwrap
必要
店舗の特定情報
店舗の位置
店舗の営業開始、終了
イベント
onStartObject
onEndObject
onShopChanged
onShopWaitUpdate
待ち時間のポーリングはいる?
柔軟に変えたい
あるデータは同期するが、このデータは同期しない
GraphQLに似てる?
似てる。GraphQLでシンプルにできそう
都度リクエストで対応できる部分は、SWR + jQuery.
検索は、キャッシュデータに対して行うのか?
違う。