これが役立つことを願っています。
これらの用語の包括的な定義を教えてください。
私のブログ投稿を参照してください: https://leecampbell.com/2010/08/19/rx-part-7-hot-and-cold-observables
ホットなオブザーバブルで Publish を呼び出したり、コールドで Defer を呼び出したりするのは理にかなっていますか?
いいえ、私が考えることができるわけではありません。
ホット/コールド コンバージョンの側面は何ですか? たとえば、メッセージを失うことはありますか?
サブスクライバーに関係なく「イベント」が発生するため、Observable が Hot の場合、メッセージを「失う」可能性があります。
IObservable と IEnumerable のホット定義とコールド定義に違いはありますか?
質問がよくわかりません。この類推が役立つことを願っています。Hot Observable と Eagerly 評価済みの IEnumerable を比較します。つまり、List または Array は両方とも Eagerly 評価され、誰もそれらを列挙しなくてもデータが取り込まれます。ファイルまたはデータベースから値を取得する yield ステートメントは、Yield キーワードを使用して遅延評価できます。lazy は適切ですが、デフォルトでは、2 番目の列挙子が実行された場合に再評価されます。これらを Observable と比較すると、Hot Observable はイベント (ボタンのクリック) または温度のフィードである可能性があります。これらのイベントはサブスクリプションに関係なく発生し、複数のサブスクリプションが同じ監視対象に対して行われた場合にも共有されます。Observable.Interval は Cold オブザーバブルの良い例です。サブスクリプションが作成されたときにのみ、値の生成が開始されます。
コールドまたはホットのプログラミングで考慮すべき一般原則は何ですか?
ポイント1のリンクを参照してください。また、RefCount と組み合わせて使用されている Publsh を調べることをお勧めします。これにより、Cold Observable の遅延評価セマンティクスを持つことができますが、Hot Observable が取得するイベントを共有できます。
ホット/コールド観測量に関するその他のヒントはありますか?
手を汚して遊んでください。それらについて30分以上読んだら、それ以上読むよりもコーディングに費やす時間がはるかに生産的になります:)