我正在设计一个可以在多个环境中自动执行任务的编排引擎:JavaScript Web UI,Python Web服务器和c运行时。一种可能的方法是在每种语言中编写编配核心。这看起来很脆弱,因为每个新的引擎特性都需要添加到每种支持的语言中(并且错误必须多次解析,而所有这些都是在处理每种语言中的不同习语时)。另一种方法是用最低公分母语言(可能是c)编写核心,然后用其他语言包装它。但是,我认为将编译的库部署到浏览器将是一场噩梦,如果不是不可能的话。所以,我正在考虑的另一个选择是模板和代码生成。然后可以将引擎编写一次(可能使用Python),并使用jinja模板将工作流编译到每个目标。多平台代码生成
这最后一种方法听起来可行吗?如果我走这条路,我应该知道哪些陷阱?我应该把它吸起来并且写下引擎三次?
你是说你正在重新实现厨师或Ansible? –
@JohnZwinck嘿,好问题!我不这么认为,因为我没有处理服务器配置和应用程序部署。即使我是这样,人们也觉得有足够的空间存在,但是没有,这更多的是关于多次运行时的数据处理。 – matthewatabet