亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將數據訪問和業務邏輯移動到 CLI 并在 graphql 服務器中使用

將數據訪問和業務邏輯移動到 CLI 并在 graphql 服務器中使用

Go
慕工程0101907 2022-08-01 10:52:00
斷續器我是一個小團隊的后端,主要在postgres/nodejs/apollo graphql/react stack中構建應用程序。在我的愛好項目中,我使用golang,并且在使用眼鏡蛇/蝰蛇構建CLI應用程序方面表現出色。我開始考慮將所有關鍵業務邏輯和數據訪問移動到可重用的小型CLI應用程序中,這些應用程序內置于golang中并作為二進制文件分發。我設想這些cli的輸出來生成json,這是機器可讀的。然后,nodejs graphql 服務器將成為 CLI 二進制文件的更淺的包裝器,并使用類似 const { stdout, stderr } = await exec('<<MY CLI --here >>');將業務邏輯和數據訪問分離到 CLI 中對于我在非服務器方案中的可重用性很有吸引力。另外,我真的很喜歡寫在go中而不是node。這似乎是一個不錯的主意,但也許我忽略了這種方法的一些陷阱?有人采取這樣的方法嗎?
查看完整描述

1 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

僅當個人用戶從終端使用它們時才使用實用程序。如果節點服務器獲得過多的并發請求,從 nodejs 服務器啟動如此多的 cli 進程將不是高效且可擴展的。啟動過多的 cli 進程會使其變慢并消耗系統資源。

我會使用API。節點服務器將請求通過管道傳輸到 go api 服務器。現在關于 cli,要由用戶從終端以獨立模式使用,您需要將所有邏輯添加到單獨的模塊 (lib) 中。這個模塊庫可以托管(或使用)到Go api服務器以及cmd中。cmd實用程序和go http api服務器進程將只是主機,而模塊中的實際內容。

或者更好的是,命令行實用程序將有2種模式作為http服務器或獨立實用程序運行。


查看完整回答
反對 回復 2022-08-01
  • 1 回答
  • 0 關注
  • 97 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號