什么取代了函数式编程中的 MVC 模式?
Posted
技术标签:
【中文标题】什么取代了函数式编程中的 MVC 模式?【英文标题】:What replaces the MVC pattern in functional programming? 【发布时间】:2013-05-31 13:30:00 【问题描述】:我是一名 MVC Web 开发人员,对编写 Web 应用程序的函数式编程非常感兴趣(具体来说,我对 Erlang 和 Cowboy 很着迷。)
我无法找到答案/资源是什么模式用于替换 FP 中的 MVC。
显然,ORM 的想法在 FP 中是可笑的,因为它不是面向对象的,那么用什么来代替它来实现持久性逻辑呢?是否通常只构建一个使用库来创建与数据存储交互的函数的模块,或者是否有类似于 ORM 的工具?
我们将不胜感激建议和资源链接。 Erlang/Cowboy 特定帮助的奖励积分。谢谢。
【问题讨论】:
This question 帮助我理解为什么这个答案似乎缺失,但我仍然对有 FP 经验的人的建议感兴趣,具体到 ORM 类型的工作。跨度> 看看Deprecating the Observer Pattern withScala.React
。
【参考方案1】:
Erlang 有 MVC 框架。例如,它是 ChicagoBoss。
【讨论】:
谢谢伙计。我看过 ChicagoBoss,我想我更喜欢 Cowboy 或 WebMachine 之类的更苗条的东西。我意识到这意味着没有 ORM 等效项,但我试图弄清楚 FPers 通常如何在没有 ORM 的情况下做到这一点。 您可能想看看nitrogenproject.com - 它不完全是 MVC(它是使用 Erlang 模式匹配的事件驱动的)。我发现它重量轻,开发周期快。顺便说一句,在 Erlang 中较少需要类似 ORM 的工具,因为 Mnesia 等数据库允许将术语存储在数据库中并作为术语读回,即不需要 映射或翻译层,因为没有什么可翻译的。【参考方案2】:Lift 框架(用 Scala 编写)使用称为“视图优先”的模式。
关注链接https://www.assembla.com/wiki/show/liftweb/View_First
【讨论】:
【参考方案3】:我是 erlang 的编码员。我使用 erlang 作为我的网络游戏服务器... 所以......没有视图......在功能语言中,这不是模型...... 所以从我的角度来看,函数语言不需要MVC (就像函数语言中没有类或子类..)
【讨论】:
【参考方案4】:引用@yarivs 的article:
Erlang 确实在 MVC 的所有字母中占有重要地位。对于模型,忘记数据库抽象层:您有一个名为 Mnesia 的纯 Erlang 分布式数据库。对于视图,Yaws 具有 ehtml。对于控制器,Yaws 有 appmods 和 Erlang 的模式匹配。
我希望这会有所帮助。
【讨论】:
以上是关于什么取代了函数式编程中的 MVC 模式?的主要内容,如果未能解决你的问题,请参考以下文章