我正在設計一個可以在多個環境中自動執行任務的編排引擎:JavaScript Web UI,Python Web服務器和c運行時。一種可能的方法是在每種語言中編寫編配核心。這看起來很脆弱,因爲每個新的引擎特性都需要添加到每種支持的語言中(並且錯誤必須多次解析,而所有這些都是在處理每種語言中的不同習語時)。另一種方法是用最低公分母語言(可能是c)編寫核心,然後用其他語言包裝它。但是,我認爲將編譯的庫部署到瀏覽器將是一場噩夢,如果不是不可能的話。所以,我正在考慮的另一個選擇是模板和代碼生成。然後可以將引擎編寫一次(可能使用Python),並使用jinja模板將工作流編譯到每個目標。多平臺代碼生成
這最後一種方法聽起來可行嗎?如果我走這條路,我應該知道哪些陷阱?我應該把它吸起來並且寫下引擎三次?
你是說你正在重新實現廚師或Ansible? –
@JohnZwinck嘿,好問題!我不這麼認爲,因爲我沒有處理服務器配置和應用程序部署。即使我是這樣,人們也覺得有足夠的空間存在,但是沒有,這更多的是關於多次運行時的數據處理。 – matthewatabet