Какие системы шаблонов подходят для написания получателей услуг - PullRequest
1 голос
/ 27 апреля 2011

У меня есть требование создать демон массового создания сервисов, которому можно передать таблицу данных, а затем отключить и создать набор предварительно настроенных сервисов.Тем не менее, тип сервисов потенциально много и разнообразен, и потенциально последующие шаги потребуют вывода предыдущих шагов.

Кажется, что мне нужно реализовать на каком-то доменно-специфическом языке, который позволяет мне определить шаблон рецепта.,Затем его можно пропустить через механизм шаблонов с подстановками, сделанными из таблицы данных, прежде чем, наконец, его запустить.

Имеет смысл повторно использовать существующую языковую инфраструктуру, чтобы более сложные рецепты могли использовать управление потоком.и определить ограниченный набор базовых операций.Однако я бы хотел, чтобы простые рецепты не требовали изменения языка, поскольку конечные пользователи вряд ли будут иметь опыт работы с программным обеспечением.

Я хотел бы представить простой шаблонный рецепт, похожий на:

# 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 предлагает множество различных вариантов (http://wiki.python.org/moin/Templating), при этом большинство нацеленных шаблонных решений HTML / XML. Мы будем благодарны за все плюсы и минусы различных систем.

1 Ответ

2 голосов
/ 27 апреля 2011

Я думаю, Мако или Джинджа2 оба могут соответствовать требованиям.

  • Оба являются не HTML / XML шаблонами, но являютсяна основе текста.
  • Оба популярны и хорошо документированы.
  • Мако имеет более питонический синтаксис, где, как ОГРОМНОЕ преимущество с Jinja, поддерживает песочницу, которая может быть полезна для вас.
...