1

データのテーブルをフィードできるバルクサービス作成デーモンを構築してから、事前に用意されたサービスのセットを作成する必要があります。ただし、サービスのタイプは潜在的に多く、多様であり、潜在的に後のステップでは前のステップの出力が必要になります。

テンプレートレシピを定義できるようにする、ある種のドメイン固有言語で実装する必要があるようです。これは、最終的に実行される前に、データのテーブルから作成された置換を使用してテンプレートエンジンに渡すことができます。

既存の言語インフラストラクチャを再利用して、より複雑なレシピでフロー制御を使用できるようにし、制限された一連の基本操作を定義することは理にかなっています。ただし、エンドユーザーはソフトウェアの経験がない可能性が高いため、簡単なレシピでは言語の知識を変更する必要がないようにしたいと思います。

次のような単純なテンプレートレシピを想像します。

# Create a service from NodeA to NodeC via NodeB
# Parameters are:
#   node a id, node a port, node b id, node c id, node c port, comment
node_a = node_a_type($1)
conn_a = node_a.create_connection($2, $7)
node_b = node_b_type($3)
conn_b = node_b.create_connection(conn_a.output_port, $7)
node_c = node_c_type($4)
conn_c = node_c.terminate_connection(conn_b.output_port, $5, $7)

私はPythonに精通しているので、基本言語としてPythonを提案します。ただし、Python wikiは、多くの異なるオプション(http://wiki.python.org/moin/Templating)を提案しており、そのほとんどがHTML/XMLテンプレートソリューションを対象としています。さまざまなシステムの長所と短所についての洞察をいただければ幸いです。

4

1 に答える 1

2

MakoJinja2の両方がこの法案に適合すると思います。

  • どちらもhtml/xmlテンプレートではありませんが、テキストベースです。
  • どちらも人気があり、十分に文書化されています。
  • Makoには、よりpythonic構文がありますが、Jinjaの大きな利点は、サンドボックス化をサポートしているためです。
于 2011-04-27T11:36:52.380 に答える