2

我在使用 Java/C# 构建企业应用程序方面拥有丰富的经验,并且已经习惯了面向对象、静态类型语言的所有陷阱。具体来说,通过使用行业标准工具,我已经非常擅长处理系统复杂性:

  • 接口/抽象类型
  • 对象构成
  • 依赖倒置

我被要求使用动态的函数式语言 (Lua) 设计一个相当复杂的后端消息处理系统。函数式语言如今风靡一时(NodeJs、JavaScript 等),所以我很高兴借此机会加入上述潮流。

任何人都可以推荐一个示例应用程序或架构,我可以使用它来学习使用诸如一流函数、闭包、currying 来构建一个复杂的、松散耦合的系统吗?

非常感谢!

4

2 回答 2

2

我已经对“设计模式”进行了相当多的研究,这些“设计模式”可以应用于具有一流功能支持的动态语言,这是我的发现。

柯里化 == 依赖注入。Currying 允许您获取一个函数并将其重新打包为一个新函数,其中一个或多个参数值已经分配。这与 IoC 容器实例化一个类“引导”非常相似,该类具有所有依赖项并准备好供客户端使用。

第一类函数 == 命令模式。由于第一类函数可以传递类似的值,因此您基本上可以免费获得命令模式,而且没有开销。

参考:

第一类函数 == 命令模式

通过 Currying 进行函数依赖注入

于 2012-10-23T17:41:05.400 回答
2

I will suggest looking on the libs/frameworks below, they are really well designed, keep in mind that javascript and lua are very similar, just replace objects with tables add coroutines and "nice" syntax and you have Lua.

Lua

node.js

  • Express micro web framework.
  • Mocha Unit testing framework.
于 2012-09-09T01:21:15.323 回答