Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在通过 Fowler 的分析模式和 Clojure 中的编程示例为自己工作,以便更好地理解这两者。
暂时将持久性/持久性问题放在一边1,看起来具有同步的 Clojure refs 显然是最好的方法。
另一方面,给定由进入帐户的条目触发的过帐规则,在更多帐户(可能是代理)中产生更多交易,并且它们的异步更新会更好。在这一点上,我可能不得不尝试两者兼而有之。有人对这个特定的设计决策有什么建议吗?
1我假设如果我能让功能和概念很好地工作,我将能够稍后将所有内容映射到合理的数据库模式中。
Clojure 中的所有可变对象都旨在为您提供关于事物如何随时间变化的一致视图。如果您有多个相对于彼此发生变化的对象,那么您需要创建一个包含所有对象的时间线,并且 refs 就是为此目的而设计的。
您可能还对观察者的概念感兴趣(add-watch reference key fn),您可以将其添加到 refs 以强制执行事务不变量。
(add-watch reference key fn)