Ich möchte in meinem Clojure-Programm viele reaktive (Datenfluss) Programmiertechniken verwenden. Ist "add-watcher" auf clojure refs gut genug, um dies zu tun. Ein einfacher Fall wäre, die GUI zu aktualisieren, wenn sich die zugrunde liegenden Daten ändern.Verwenden Sie Clojure Cells oder Add-Watcher für reaktives Programm?
3
A
Antwort
2
Ja, das ist in der Tat eine gute Idee. Ich habe es in meinem eigenen Code verwendet, um UI-Elemente zu aktualisieren, wenn sich die Streaming-Daten ändern. Sie müssen nur darauf achten, dass die Watchers synchron im agent
Thread oder im Hauptthread aufgerufen werden, wenn atom
, ref
oder var
. Um also den Thread nicht zu blockieren, sollten Sie nicht zu viel Verarbeitung in den Watchers machen. Wenn Sie dies tun müssen, erstellen Sie eine future
.