Внедрение шаблона финансового счета в Clojure: реф или агент?

StackOverflow https://stackoverflow.com/questions/1816313

Вопрос

Я работаю над шаблонами анализа Фаулера и примерами программирования для я в Clojure как способ развить лучшее понимание обоих.

Отложив проблемы постоянства / долговечности в сторону на данный момент 1 , это Кажется, что Clojure refs с их синхронизацией было бы очевидно лучшим подходом.

С другой стороны, учитывая правила публикации, которые запускаются записями в учетной записи, производя больше транзакций в еще большем количестве учетных записей, возможно, агентов, и их асинхронные обновления будут лучше. На данный момент, похоже, мне придется попробовать немного того и другого. У кого-нибудь есть предложения по этому конкретному дизайнерскому решению?

1 Я предполагаю, что смогу заставить работать функциональность и концепции хорошо, я смогу отобразить все в разумную схему БД позже.

Это было полезно?

Решение

Все изменяемые объекты в Clojure предназначены для того, чтобы дать вам непротиворечивое представление о том, как все меняется со временем . Если у вас есть несколько объектов, меняющихся по отношению друг к другу, вам нужно создать временную шкалу, которая включает в себя все из них, и ссылки предназначены именно для этой цели.

Вас также может заинтересовать концепция наблюдателей (ссылочный ключ add-watch fn) , который можно добавить в ссылки для принудительного применения инвариантов транзакций.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top