看板 Marginalman
最佳做法:GUI 直接接 Core,不是 CLI。 原因如下: CLI 通常是為人設計的介面,它輸出文字、log、錯誤訊息,這些東西給人看沒問題,但要 給程式用就會很麻煩,要再 parse。 GUI 是給人用的圖形介面,它也需要清楚的資料結構來展示畫面、處理狀態等,如果它要跟 CLI 互動,還要「模擬打指令」、「解析 CLI 回傳的字串」,等於又多了一層耦合與維護 負擔。 Core 應該是邏輯層、功能層,不依賴輸入輸出方式。你已經這樣分好是很好的設計方向! 2. 那些老軟體(像 Git、ffmpeg)真的都是 GUI 呼 CLI 嗎? 是的,有些情況下 GUI 是呼叫 CLI,但這是因為: 這些 CLI 本身就非常穩定、有明確的 command interface。 有些 CLI 沒有 core library,或者 core 是用 C/C++ 寫的,沒有暴露給高階語言。 比如:TortoiseGit 是 GUI,但它底下就是 call Git CLI(用 Process 呼叫 git.exe 然 後 parse 結果)。 這做法是為了「相容性」與「快速集成」,但真的不太優雅。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.248.41 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1744689759.A.D0D.html
yam276: 要這種回答我自己問AI就好了== 04/15 12:03
h0103661: 靠北,gpt自己就是接api 04/15 12:03