2

私はJava/C#を使用してエンタープライズアプリを構築した経験が豊富で、オブジェクト指向の静的に型付けされた言語に伴うすべてのトラップに慣れています。具体的には、業界の標準ツールを使用して、システムの複雑さに対処することに非常に精通しています。

  • インターフェイス/抽象型
  • オブジェクトコンポジション
  • 依存性逆転

動的で関数型言語(Lua)を使用して、かなり複雑なバックエンドメッセージ処理システムを設計するように求められています。関数型言語(NodeJ、JavaScriptなど)は最近大流行しているので、これをこの時流に乗る機会として利用できてうれしいです。

ファーストクラス関数、クロージャ、カリー化などを使用して複雑で疎結合のシステムを構築する方法を学ぶために使用できるサンプルアプリケーションまたはアーキテクチャを誰かが提案できますか?

どうもありがとう!

4

2 に答える 2

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 に答える
2

私は、ファーストクラスの関数をサポートする動的言語に適用できる「デザインパターン」についてかなりの研究を行ってきました。これが私の発見です。

カリー化==依存性注入。カリー化を使用すると、関数を取得して、1つ以上のパラメーター値が既に割り当てられている新しい関数として再パッケージ化できます。これは、IoCコンテナが、すべての依存関係を使用して「ブートストラップ」されたクラスをインスタンス化し、クライアントがすぐに使用できるようにするのと非常によく似ています。

ファーストクラス関数==コマンドパターン。ファーストクラス関数は値のように渡すことができるため、基本的にコマンドパターンを無料でオーバーヘッドなしで取得できます。

参照:

ファーストクラス関数==コマンドパターン

カリー化による機能的依存性注入

于 2012-10-23T17:41:05.400 に答える