我最近进入了函数式编程,并且学习了几种以引用透明的方式处理某些副作用的方法:
但是现在大多数“真实世界”的应用程序都与外部系统(如 Web 服务、数据库等)交互,这些系统可以由多个用户同时修改,它们有状态、长时间运行的操作等。所以情况并不那么简单如上述类别:向系统询问实体的状态或试图控制它的结果取决于其状态。此外,交互性也是一个要求:有一些用户可以任意点击的 GUI,也许我们还必须自动对来自系统的变化做出反应。
通过最大化纯函数的好处来设计和实现此类应用程序的模式是什么?或者上面的一些方法可以以我没有想到的方式应用于这个问题吗?该语言(例如 Java 或 Scala)不会强制执行 100% 纯度,因此我对由实践经验支持的实用解决方案感兴趣。
functional-programming architectural-patterns referential-transparency