Внедрение шаблона финансового счета в Clojure: реф или агент? - PullRequest
5 голосов
/ 29 ноября 2009

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

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

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

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

1 Ответ

5 голосов
/ 29 ноября 2009

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

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

...