首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用函数式编程的企业模式

使用函数式编程的企业模式
EN

Stack Overflow用户
提问于 2015-01-09 09:58:11
回答 1查看 4.7K关注 0票数 24

有没有关于企业架构模式(就像Fowler的)的(集中的)信息的好来源,比如示例和用例,以及相当多的实用信息?例如,我已经看到GoF的许多设计模式在一些SO帖子和其他网站上都有简短的解释,以及与它们相关的实用信息。我想从一个更实用的面向企业应用的范例中寻求一个类似的资源。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-09 19:58:12

我想要一个类似的资源,它是一个面向企业应用的功能更强大的范例。

据我所知没有任何消息来源。现代FP的大规模企业使用通常不到10年,因此资源倾向于以互联网的形式。此外,许多人避免使用GoF,因为它与FP基本无关。

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

社论

根据我的经验,几乎所有的设计都属于“编译器”或“解释器”模式,使用数据模型和数据上的函数。也就是说,问题域被表示为代数结构(对象是具有函数的ADT),而软件体系结构是从一个代数到另一个代数的映射。这就是“范畴理论”设计模式(!)

我们的代数数据类型是捕获结构的最佳方式。函数是转换这些结构或将它们映射到新类型结构的最佳方法。而且有很多关于编写编译器和解释器的研究,它们使得这件事变得容易。您可以通过编写编译器(或解释器)来实现大多数系统。因此,学习如何编写编译器。

当你开始寻找这些“分类”的软件问题时,作为解释器或编译器,有多少东西会掉下来,这是相当令人惊讶的。像MVC这样的东西作为解释器脱颖而出。很多商业软件(数据交换)变成了parser+analysis+pretty打印机--也就是编译器。很明显,架构(即如何粘合组件)实际上是关于代数和类别的。

显然,这是关于高层架构的。更低层次的事情,比如如何最好地实现日志记录系统,或者如何最好地连接昂贵的组件,如何传递环境,重放/回滚确实具有特定的抽象,您可以重用,这是另一个问题。通常是作为库捕获的monads/monad/applicatives或其他计算概念。

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

票数 74
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27852709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档