J'espère que cela vous aidera.
Pouvez-vous nous donner un aperçu complet de la situation ? une définition complète de ces termes ?
Voir mon article de blog à l'adresse suivante https://leecampbell.com/2010/08/19/rx-part-7-hot-and-cold-observables
Est-il parfois utile d'appeler Publish sur un observable chaud ou Defer sur un observable froid ?
Non, pas que je sache.
Quels sont les aspects du chaud/froid ? les conversions - perdez-vous des messages, par exemple ?
Il est possible de "perdre" des messages lorsque l'observable est chaud, car les "événements" se produisent indépendamment des abonnés.
Existe-t-il des différences entre la chaleur et l'humidité ? les définitions à chaud et à froid pour IObservable et IEnumerable ?
Je ne comprends pas vraiment la question. J'espère que cette analogie vous aidera. Je comparerais un Observable chaud à un IEnumerable évalué avec empressement, c'est-à-dire qu'une liste ou un tableau sont tous deux évalués avec empressement et ont été remplis même si personne ne les énumère. Une instruction yield qui récupère des valeurs d'un fichier ou d'une base de données peut être évaluée paresseusement à l'aide du mot-clé Yield. Bien que la paresse puisse être une bonne chose, elle sera par défaut réévaluée si un second énumérateur s'y intéresse. Si l'on compare ces éléments aux observables, un observable chaud peut être un événement (clic sur un bouton) ou un flux de températures ; ces événements se produiront indépendamment d'un abonnement et seront également partagés si plusieurs abonnements sont effectués pour le même observable. Observable.Interval est un bon exemple d'observable froid. Il ne commencera à produire des valeurs que lorsqu'un abonnement sera effectué. Si plusieurs abonnements sont effectués, la séquence sera réévaluée et les "événements" se produiront à des moments différents (en fonction du temps écoulé entre les abonnements).
Quels sont les principes généraux à prendre en compte lors de la programmation du froid ou du chaud ?
Voir le lien au point 1. Je vous recommande également d'étudier la possibilité d'utiliser Publsh en conjonction avec RefCount. Cela vous permet d'avoir la sémantique d'évaluation paresseuse des observables froids, mais le partage des événements que les observables chauds obtiennent.
D'autres conseils sur les observables observables ?
Salissez-vous les mains et jouez avec eux. Une fois que vous avez lu à leur sujet pendant plus de 30 minutes, le temps passé à coder avec eux est bien plus productif pour vous que de lire davantage :)