具有功能编程的企业模式

是否有关于企业架构模式(la Fowler's)的(集中)信息的良好来源,可能有例子和用例以及大量实用信息? 例如,我看到许多SOF的设计模式都在一些SO帖子和其他站点中简短解释,以及与它们有关的实用信息。 我正在寻求一种面向企业应用的功能更强大的模式资源。

谢谢。


我正在寻求一种面向企业应用的功能更强大的模式资源。

没有我知道的资源。 现代FP的大规模企业使用往往<10岁,所以资源往往是互联网形式。 此外,很多人避免将GoF与FP基本无关。

SO仍然是你最好的选择(这里是一个例子:https://stackoverflow.com/a/3077912/83805)。 虽然FP架构书有市场,但这是肯定的。


社论

根据我的经验,几乎所有的设计都采用了“编译器”或“解释器”模式,并使用该数据的数据和函数模型。 也就是说,问题领域被表示为代数结构(对象作为ADT,其功能在他们身上),而软件架构则是从一个代数到另一个代数的映射。 这是“类别理论”设计模式(!)

我们的代数数据类型是捕捉结构的最佳方式。 函数是转换这些结构的最好方法,或将它们映射到新类型的结构。 并且有很多关于编写编译器和解释器的研究使得这个东西变得简单。 你可以通过编写一个编译器(或解释器)来实现大多数系统。 所以学会编写编译器。

当你开始寻找这些“分类”软件问题时,作为解释器或编译器的事情会有多少变得非常惊人。 像MVC这样的东西会作为口译员出现。 许多商业软件(数据管理)成为解析器+分析+漂亮的打印机 - 即编译器。 也许很明显,架构(即如何粘合组件)实际上是关于代数和类别的。

显然这是关于高层体系结构。 较低层次的事情,比如如何最好地实现日志记录系统,如何最好地连接昂贵的组件,如何传递环境,重放/回滚,都有特定的抽象,你可以重用是一个不同的问题。 通常单数形态/单子/应用程序或其他计算概念捕获为库。

再次,我们转到代数视图来找到最能捕获问题域的结构。

链接地址: http://www.djcxy.com/p/42867.html

上一篇: Enterprise patterns with functional programming

下一篇: designing large projects in OCaml