Anki Support 需求分析
接下來想要分享另一個專案(也是自己個人的需求)
接下來想要分享另一個專案(也是自己個人的需求)
還沒開發完就默默的來到了30天了
在前一篇文章提到,在golang中,如果要mock的話只能mock interface,因此,我們在做依賴注入的時候就要特別注意注入的內容都要是以interface為主,才有辦法在測試的時候順利的被替換掉
在接下來這個專案中,因為我希望可以達到的是盡量讓每個階段都可以做到比較好的職責分離,所以我這次想採用這篇文章所規劃的DDD來進行資料夾的架構規劃,另外再外加一些輔助的資料夾作為整體架構
當你的程式越來越大,你需要依賴的東西就會越來越多
Gin(web)、Cobra(CLI)、Viper(config)、colly(crawler)、Gorm(ORM)、zerolog(logger)、resty(http client)、fx(dependency injection)、cron(cron job)
goMock
在golang1.21(包含1.21)之前,下面這組code會出現很微妙的狀況
今天我想要來介紹目前我比較有把握的Golang專案架構
這次我們使用的是mock這個工具幫我們快速的模擬需要的interface
在寫Rest API的時候,最讓人困擾的點不外乎就是程式中的實際輸出因為你的文件沒有及時更新,導致實際的API規格跟文件上的不一致
error
這次我們要使用的測試工具是testify
跟大家分享個小雷,如果之後未來有需要升級gorm的版本,要記得更新一下pg的連線字串
在前面,我們事先確認好了我們想要的功能都有辦法在程式上完成
在進行測試的時候,發現一個小問題
在寫完前兩篇後,發現要將openai的輸出放到anki中的時候,會發生格式不符的問題
前置作業
在第一階段寫完測試之後,接著就要開始完成實際上的實做內容
Anki
Anki
GPT
在這次的anki的infrastructure中,會需要以下功能
在這篇,先實做Text to Speech跟OpenAI的部分
1. 開啟一個Google Cloud的Development Project
在先前的內容中,我們把
此次的專案連結
這次,我們有個新需求,需要多一個api,可以透過get的request來取得之前上傳的圖片的公開網址
在前面的開發流程中,會發現說我們有時候開發到一半,才會突然發現
Anki
接下來我們要實做Normal Anki Note的測試案例
在接下來的功能,我會需要一個可以幫我針對anki的modelName的不同,來進行指定的操作
在先前的規劃中,可以發現,我們主體都是圍繞在Anki的上打轉
在先前的規劃中,實做domain的內容時發現,在domain的內容有出現各種infrastructure的內容,這樣設計就違背domain不能依賴外部的設計原理了