我有一個基本的 go 項目結(jié)構(gòu)如下:src/github.com/jeeves/my-project/ |- main.go |- models/ |- user.go的內(nèi)容main.go是——package mainvar log = initializeLogger()func main() { // do stuff}func initializeLogger() *logging.Logger { // build and return a logger}的內(nèi)容models/user.go是package maintype User struct { Firstname string `json:"first_name"` Lastname string `json:"last_name"`}// other functions我很好奇設(shè)置包結(jié)構(gòu)的最佳方法 -我應(yīng)該成為而不是的models/user.go一部分嗎?有什么區(qū)別,我怎么知道什么時候使用它們?package modelspackage main如果我確實(shí)使用package models,如何訪問定義的models/user.go全局對象?(如您所見,我試圖定義一個記錄器一次,并在我的應(yīng)用程序中訪問它。)logmain.go謝謝!
1 回答

慕勒3428872
TA貢獻(xiàn)1848條經(jīng)驗 獲得超6個贊
為您的日志記錄 API 制作一個單獨(dú)的包,
將代碼構(gòu)建到包中應(yīng)該基于功能,包應(yīng)該相互獨(dú)立,它們的名稱應(yīng)該代表包的含義。
如果你有幾個models
并且是其中之一,并且如果以后要添加user
更多類型,那么制作一個包,如,?,?,它們是 `model.model
user
customer
...
導(dǎo)入時user
做.../modle/user
類似于encoding/json
。
可以添加新包,而無需對現(xiàn)有代碼進(jìn)行大量更改,只需進(jìn)行最少的更改。
- 1 回答
- 0 關(guān)注
- 133 瀏覽
添加回答
舉報
0/150
提交
取消