Я хочу использовать много методов программирования реактивного типа (потока данных) в моей программе clojure. Использует «add-watcher» на clojure refs, чтобы быть достаточно хорошим, чтобы это сделать. Простым случаем для этого было бы обновление GUI при изменении базовых данных.Использовать Clojure Cells или add-watcher для реактивной программы?
3
A
ответ
2
Да, это действительно хорошая идея. Я использовал его в своем собственном коде для обновления элементов пользовательского интерфейса при изменении данных потоковой передачи. Единственное, что вам нужно быть осторожным, это то, что наблюдатели называются синхронно в потоке agent
или основной нити, если atom
, ref
или var
. Поэтому, чтобы избежать блокировки потока, не делайте слишком много обработки в наблюдателях. Если вам нужно это сделать, создайте future
.